Emacs Keys: Good and Bad Key Choices

By Xah Lee. Date: .

Bad Key Choices

Best not to bind the following keys.

Ctrl+?

For historical reasons, Emacs treats the DEL character as the control equivalent of ?

Ctrl+h

C-h have a special status in emacs's key system for help-map.

For example, type Ctrl+x, then type Ctrl+h, it'll list what valid keys can follow and the associated command.

Help Functions (ELISP Manual)

Escape or Ctrl+[

The Escape key is tied to Ctrl+[ and Meta Key .

Escape by itself has complicated meanings depending when it is pressed and how many times it is pressed.

Ctrl+Shift+letter

In text terminals, it cannot distinguish shifted and unshifted versions of such combination. Works fine if you always use emacs in a GUI environment.

Other Char Bits (ELISP Manual)

Ctrl+m or Enter

These are the same by default. Normally they are bind to a command that sends ASCII 10 LINE FEED character.

Ctrl+i or Tab

These are the same by default. Normally they are bind to a command that sends ASCII 9 horizontal tab character.

Good Key Choices

Emacs has some 7 thousand commands. By default, 800 of them have key shortcuts. 〔see Emacs: One Thousand Default Keybinding〕 All the common key spots are used. If you define your own keys without care, you may find that many major mode or minor mode override your keys, because they have priority.

By official emacs documentation Key Binding Conventions (ELISP Manual) , the key space reserved for users are the function keys F5 to F9, and Ctrl+c letter. This is very restrictive.

The following keys are good spots for your own definitions, and does not cause any problems in practice.

F5, F6, F7, F8, F9, F11, F12

Not defined by emacs. Combination with Alt or Ctrl or Shift is also good. Make sure they are not used by the OS. Best is to create key sequence with them. [see Emacs Keys: Key Sequence]

F1, F2, F3, F4, F10, F11

Their default commands are not frequently used, or, better with other keys. 〔see Emacs Keys: Layout Diagram

Ctrl+0 to Ctrl+9, Alt+0 to Alt+9

By default they are digit-argument. Such is not very frequently used. If you need them, use the more general universal-argumentCtrl+u】 instead.

〔see Emacs: Universal Argument (prefix arg)

Number Pad Keys

Very useful, but depending on which emacs distro/OS you are using, or if you use emacs in terminal or GUI, binding these keys may not work. 〔see Emacs: Bind Number Pad Keys

Emacs, Change Keys