Key Bindings
See Also
Reference for key bindings : Complete documentation on key bindings.
Key bindings let you map sequences of key presses to commands.
File Format
Key bindings are defined in JSON and stored in .sublime-keymap
files.
In the same package, separate keymap files for Linux, OSX and Windows may exist for better OS integration.
Example
[
{ "keys": ["ctrl+shift+n"], "command": "new_window" },
{ "keys": ["ctrl+o"], "command": "prompt_open_file" }
]
Defining and Overriding Key Bindings
Sublime Text ships with default key bindings (for example, Packages/Default/Default (Windows).sublime-keymap)
. In order to override default key bindings or add new ones, use a separate keymap file with higher precedence: for example, Packages/User/Default (Windows).sublime-keymap
.
Advanced Key Bindings
Simple key bindings consist of a sequence of one or more keys mapped to a command. However, there are more complex syntaxes for passing arguments to commands and restricting key bindings to specific contexts.
Passing Arguments
Use the args
key to specify arguments:
{ "keys": ["shift+enter"], "command": "insert", "args": {"characters": "\n"} }
Here, \n
is passed to the insert
command whenever ⇧ ⏎ is pressed.
Contexts
Contexts determine whether a given key binding is enabled based on the caret's position or some other state.
{ "keys": ["escape"], "command": "clear_fields", "context":
[
{ "key": "has_next_field", "operator": "equal", "operand": true }
]
}
This key binding translates to clear snippet fields and resume normal editing if there is a next snippet field available. Thus, pressing Esc will only trigger this key binding if you are cycling through snippet fields.
The same key binding may be mapped to multiple contexts, so a single sequence of key presses may produce different results at different times.
Key Chords
You can create key bindings composed of multiple keys.
{ "keys": ["ctrl+k", "ctrl+v"], "command": "paste_from_history" }
Here, to trigger the command paste_from_history
, you have to press Ctrl K first, then release K, and finally press V.
Note: This example is a default key binding, so you can try it out for yourself.