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.
Ah, I see... I had not taken into account what you mention. But, if I have understood correctly how this hook works, each associated function has its "independence", right? I mean, if I have org-speed-command-activate and org-babel-speed-command-activate associated to this hook, and I bind the "K" key to an action in org-babel-key-bindings, but that key does not is associated with any action in org-speed-commands, then the error message would only be displayed in the proper context, that is, if I hit K at the beginning of the headline or any location defined for org-use-speed-commands. Another possibility I can think of is, instead of returning an error message: just do nothing when a wrong key is pressed. Something, maybe, like this (I suppose that the same should be done in each function added to the hook): ... (let ((defined (cdr (assoc keys ;; FIXME: don't check `org-speed-commands-user' past 9.6 (if (boundp 'org-speed-commands-user) (append org-speed-commands org-speed-commands-user) org-speed-commands))))) (if defined defined 'ignore)))) I don't know if this would avoid unexpected results... what do you think? Best regards, Juan Manuel