manpagez: man pages & more
info emacs
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

57.4.10 Disabling Commands

Disabling a command means that invoking it interactively asks for confirmation from the user. The purpose of disabling a command is to prevent users from executing it by accident; we do this for commands that might be confusing to the uninitiated.

Attempting to invoke a disabled command interactively in Emacs displays a window containing the command's name, its documentation, and some instructions on what to do immediately; then Emacs asks for input saying whether to execute the command as requested, enable it and execute it, or cancel. If you decide to enable the command, you must then answer another question—whether to do this permanently, or just for the current session. (Enabling permanently works by automatically editing your ‘.emacs’ file.) You can also type ! to enable all commands, for the current session only.

The direct mechanism for disabling a command is to put a non-nil disabled property on the Lisp symbol for the command. Here is the Lisp program to do this:

(put 'delete-region 'disabled t)

If the value of the disabled property is a string, that string is included in the message displayed when the command is used:

(put 'delete-region 'disabled
     "It's better to use `kill-region' instead.\n")

You can make a command disabled either by editing the ‘.emacs’ file directly, or with the command M-x disable-command, which edits the ‘.emacs’ file for you. Likewise, M-x enable-command edits ‘.emacs’ to enable a command permanently. See section The Init File, ‘~/.emacs.

If Emacs was invoked with the ‘-q’ or ‘--no-init-file’ options (see section Initial Options), it will not edit your ‘~/.emacs’ init file. Doing so could lose information because Emacs has not read your init file.

Whether a command is disabled is independent of what key is used to invoke it; disabling also applies if the command is invoked using M-x. However, disabling a command has no effect on calling it as a function from Lisp programs.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
© 2000-2024
Individual documents may contain additional copyright information.