1 Basic Concepts
use-package provides the use-package
macro, that simplifies the
customization and use of packages in Emacs. It was created for a few
basic reasons, each of which drove the design. Understanding these
reasons may help make some of those decisions clearer:
- Allow gathering all the configuration details of a package into one
place, making it easier to copy, disable, or move it elsewhere in the
init file.
- Reduce duplication and repetitive boilerplate, capturing several
common practices as mere keywords both easy and intuitive to use.
- Make startup time of Emacs as short as possible, without sacrificing
the quantity of add-on packages used.
- Ensure that errors encountered during startup disable only the
package(s) raising the error(s), and as little else as possible,
leaving Emacs as close to fully functional as possible.
- Allow byte-compiling your init file, so that any warnings or errors
you see at startup are meaningful. In this way, even if
byte-compilation is not used for speed (see item 3 above), it can
still be used as a sanity check.
It is worth noting that use-package is not intended to replace the
standard customization command M-x customize (see Easy
Customization in GNU Emacs Manual). On the contrary, it is
designed to work together with it, for things that Customize cannot
do.