To protect newbie users from lossage, some Emacs commands are disabled by default due to their potentially destructive nature. When one tries to execute such a command, Emacs will ask you if you really want to do that and offer to un-disable it by putting a form like below in your .emacs:
(put 'some-disabled-command 'disabled nil)
To enable all disabled commands in one fell swoop, put this in
.emacs (not recommended for newbies):
(setq disabled-command-function nil)
In older versions of Emacs,
disabled-command-hook is used in place of
Another way to deal with disabled commands is to automatically enable them on the fly.
;; We hook up the enable-me using setq instead of add-hook. That's because the ;; add-hook would cause the original hook to come after enable-me. Instead we ;; want only enable-me to execute. ;; ;; Thanks to Roland McGrath.
(defun enable-me (&rest args) "Called when a disabled command is executed. Enable it and reexecute it." (put this-command 'disabled nil) (message "You typed %s. %s was disabled. It ain't no more." (key-description (this-command-keys)) this-command) (sit-for 0) (call-interactively this-command))
(setq disabled-command-hook 'enable-me)
Alternatively, if you want to be told which commands were disabled (which are therefore likely to be powerful and interesting), you can use this function:
(defun enable-all-commands () "Enable all commands, reporting on which were disabled." (interactive) (with-output-to-temp-buffer "*Commands that were disabled*" (mapatoms (function (lambda (symbol) (when (get symbol 'disabled) (put symbol 'disabled nil) (prin1 symbol) (princ "\n")))))))
If you use a separate custom file and want Emacs to place its disable/enable forms there instead of in your init file, you can use the following advice:
(defadvice en/disable-command (around put-in-custom-file activate) "Put declarations in `custom-file'." (let ((user-init-file custom-file)) ad-do-it))