[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
You can load a given file more than once in an Emacs session. For example, after you have rewritten and reinstalled a function definition by editing it in a buffer, you may wish to return to the original version; you can do this by reloading the file it came from.
When you load or reload files, bear in mind that the load
and
load-library
functions automatically load a byte-compiled file rather
than a non-compiled file of similar name. If you rewrite a file that you
intend to save and reinstall, you need to byte-compile the new version;
otherwise Emacs will load the older, byte-compiled file instead of your
newer, non-compiled file! If that happens, the message displayed when
loading the file includes, ‘(compiled; note, source is newer)’, to
remind you to recompile it.
When writing the forms in a Lisp library file, keep in mind that the file
might be loaded more than once. For example, think about whether each
variable should be reinitialized when you reload the library; defvar
does not change the value if the variable is already initialized.
(Voir la section Defining Global Variables.)
The simplest way to add an element to an alist is like this:
(push '(leif-mode " Leif") minor-mode-alist) |
But this would add multiple elements if the library is reloaded. To avoid the problem, write this:
(or (assq 'leif-mode minor-mode-alist) (push '(leif-mode " Leif") minor-mode-alist)) |
or this:
(add-to-list '(leif-mode " Leif") minor-mode-alist) |
Occasionally you will want to test explicitly whether a library has already been loaded. Here's one way to test, in a library, whether it has been loaded before:
(defvar foo-was-loaded nil) (unless foo-was-loaded execute-first-time-only (setq foo-was-loaded t)) |
If the library uses provide
to provide a named feature, you can use
featurep
earlier in the file to test whether the provide
call
has been executed before.
Voir la section Features.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.