Go to the previous, next section.

Loading Files

Many people in the GNU Emacs community have written extensions to Emacs. As time goes by, these extensions are often included in new releases. For example, the Calendar and Diary packages are now part of the standard Emacs version 19 distribution; they were not part of the standard Emacs version 18 distribution.

(Calc, which I consider a vital part of Emacs, would be part of the standard distribution except that it is so large it is packaged separately.)

You can use a  load command to evaluate a complete file and thereby install all the functions and variables in the file into Emacs. For example:

(load "~/emacs/kfill")

This evaluates, i.e. loads, the `kfill.el' file (or if it exists, the faster, byte compiled `kfill.elc' file) from the `emacs' sub-directory of your home directory.

(`kfill.el' was adapted from Kyle E. Jones' `filladapt.el' package by Bob Weiner and "provides no muss, no fuss word wrapping and filling of paragraphs with hanging indents, included text from news and mail messages, and Lisp, C++, PostScript or shell comments." I use it all the time and hope it is incorporated into the standard distribution.)

If you load many extensions, as I do, then instead of specifying the exact location of the extension file, as shown above, you can specify that directory as part of Emacs's  load-path . Then, when Emacs loads a file, it will search that directory as well as its default list of directories. (The default list is specified in `paths.h' when Emacs is built.)

The following command adds your `~/emacs' directory to the existing load path:

;;; Emacs Load Path
(setq load-path (cons "~/emacs" load-path))

Incidentally,  load-library is an interactive interface to the  load function. The complete function looks like this:

(defun load-library (library)
  "Load the library named LIBRARY.
This is an interface to the function `load'."
  (interactive "sLoad library: ")
  (load library))

The name of the function,  load-library , comes from the use of `library' as a conventional synonym for `file'. The source for the  load-library command is in the `files.el' library.

Another interactive command that does a slightly different job is  load-file . See section 'Libraries of Lisp Code for Emacs' in The GNU Emacs Manual, for information on the distinction between  load-library and this command.

Go to the previous, next section.