> Ihor Radchenko writes: > >> Note that speed commands are not only decided by >> org-speed-command-activate. Any function in org-speed-command-hook can >> trigger speed command. Throwing an error in org-speed-command-activate >> can potentially shadow other functions in the hook.
This other, more general solution has also occurred to me, although I don't know if it's too tricky :-). The idea is to define an org-speed-command-strict-hook. Something like this (I haven't tested it much), and probably have its drawbacks: #+begin_src emacs-lisp (defcustom org-speed-command-strict-hook nil "TODO" :group 'org-structure :version "24.1" :type 'hook) (defun org-speed-command-strict-function (_) (pcase (run-hook-with-args-until-success 'org-speed-command-strict-hook _) ('nil (error "Command not defined: \"?\" for help")) (symbol (run-hook-with-args-until-success 'org-speed-command-strict-hook _)))) ;; no strict speed commands (default values): ;; org-speed-command-strict-hook: nil ;; org-speed-command-hook: (org-speed-command-activate org-babel-speed-command-activate) ;; when strict speed commands: (setq org-speed-command-strict-hook '(org-speed-command-activate org-babel-speed-command-activate)) (setq org-speed-command-hook '(org-speed-command-strict-function)) (defun my-org-toggle-speed-commands () (interactive) (if org-use-speed-commands (progn (setq org-use-speed-commands-on org-use-speed-commands) (setq org-use-speed-commands nil) (message "speed commands off")) (setq org-use-speed-commands org-use-speed-commands-on) (message "speed commands on"))) #+end_src Best regards, Juan Manuel