Difference between revisions of "Key Bindings"
Jump to navigation
Jump to search
(6 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | In Emacs, almost any keystroke, optionally combined with one or more | + | In Emacs, almost any keystroke, optionally combined with one or more modifier keys, or any sequence of such keystrokes, can be "bound" to any [[command]]. |
− | == | + | == Modifier keys naming convention == |
{| class="wikitable" | {| class="wikitable" | ||
Line 48: | Line 48: | ||
| Super | | Super | ||
| s | | s | ||
− | | | + | | On OS X this is the Command ⌘ key. |
+ | On other systems often not mapped to any key by default, or to <tt>Window</tt> or <tt>Menu</tt> if present | ||
| s-x | | s-x | ||
| Type "x" while holding down super | | Type "x" while holding down super | ||
Line 61: | Line 62: | ||
== Change key bindings == | == Change key bindings == | ||
− | You can add, remove and change key bindings for any command. | + | |
+ | You can add, remove and change key bindings for any command by using the Emacs Lisp function <code>global-set-key</code> or <code>local-set-key</code>. | ||
; {{Command|global-set-key}} or {{Command|local-set-key}} | ; {{Command|global-set-key}} or {{Command|local-set-key}} | ||
: Hit the key sequence you want to bind | : Hit the key sequence you want to bind | ||
: Type the command to bind to that key sequence | : Type the command to bind to that key sequence | ||
− | : | + | : Invoke {{Keys|C-x ESC ESC|repeat-complex-command}}. The output you see is the full lisp command which does the binding. You can copy this to your {{EmacsConfigFile}}. |
+ | |||
+ | '''Notes:''' | ||
+ | |||
+ | * <code>global-set-key</code> bind keys globally (i.e. <code>global-mode-map</code>), which means other modes would override key bindings set by <code>global-set-key</code>. | ||
+ | |||
+ | * <code>local-set-key</code> bind keys in the current buffer [[major mode]], which affects all buffers sharing the mode. | ||
== External Links == | == External Links == | ||
Line 72: | Line 80: | ||
* [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs] | * [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs] | ||
− | [[Category: | + | [[Category:Customization]] |
+ | [[Category:Key Concepts]] |
Latest revision as of 04:00, 11 May 2012
In Emacs, almost any keystroke, optionally combined with one or more modifier keys, or any sequence of such keystrokes, can be "bound" to any command.
Modifier keys naming convention
Modifier key | Abbr. | Remarks | Example | Action |
---|---|---|---|---|
Alt | A | Relatively seldom used in Emacs, because Meta is often "logically" mapped to the "physical" Alt key. | A-x | Type "x" while holding down the (non-Meta) Alt key |
Control | C | C-x C-f | While holding down Ctrl, type first "x" then "f". (This runs the command find-file). | |
Hyper | h | Often not mapped to any key (by default). | h-x | Type "x" while holding down hyper |
Meta | M | Often mapped to Alt on your keyboard | M-x find-file RET | Either:
(M-x activates the minibuffer) Then type "find-file" in the minibuffer, then Return. |
Shift | S | S-x | Type "x" while holding down Shift | |
Super | s | On OS X this is the Command ⌘ key.
On other systems often not mapped to any key by default, or to Window or Menu if present |
s-x | Type "x" while holding down super |
By convention, when multiple modifiers are specified, they go in alphabetical order: [C-M-x] not [M-C-x].
Printable cheat sheet for popular modes
Emacs ships with cheat sheets of common and useful key bindings. The pdf files are located in the refcards/ subdirectory of data-directory.
Change key bindings
You can add, remove and change key bindings for any command by using the Emacs Lisp function global-set-key
or local-set-key
.
- M-x global-set-key or M-x local-set-key
- Hit the key sequence you want to bind
- Type the command to bind to that key sequence
- Invoke [C-x ESC ESC]. The output you see is the full lisp command which does the binding. You can copy this to your Emacs configuration file.
Notes:
global-set-key
bind keys globally (i.e.global-mode-map
), which means other modes would override key bindings set byglobal-set-key
.
local-set-key
bind keys in the current buffer major mode, which affects all buffers sharing the mode.