diff --git a/lispref/tips.texi b/lispref/tips.texi index 5a1b6cc5dcf..b52c0352e0a 100644 --- a/lispref/tips.texi +++ b/lispref/tips.texi @@ -146,6 +146,19 @@ The reason for this rule is that a non-prefix binding for @key{ESC} in any context prevents recognition of escape sequences as function keys in that context. +@item +Anything which acts like a temporary mode or state which the user can +enter and leave should define @kbd{@key{ESC} @key{ESC}} of +@kbd{@key{ESC} @key{ESC} @key{ESC}} as a way to escape. + +For a state which accepts ordinary Emacs commands, or more generally any +kind of state in which @key{ESC} followed by a function key or arrow key +is potentially meaningful, then you must not define @kbd{@key{ESC} +@key{ESC}}, since that would preclude recognizing an escape sequence +after @key{ESC}. In these states, you should define @kbd{@key{ESC} +@key{ESC} @key{ESC}} as the way to escape. Otherwise, define +@kbd{@key{ESC} @key{ESC}} instead. + @item Applications should not bind mouse events based on button 1 with the shift key held down. These events include @kbd{S-mouse-1},