2021-06-17 13:08:05 +02:00
|
|
|
# Key Remapping
|
|
|
|
|
|
|
|
One-way key remapping is temporarily supported via a simple TOML configuration
|
|
|
|
file. (More powerful solutions such as rebinding via commands will be
|
|
|
|
available in the feature).
|
|
|
|
|
|
|
|
To remap keys, write a `config.toml` file in your `helix` configuration
|
|
|
|
directory (default `~/.config/helix` in Linux systems) with a structure like
|
|
|
|
this:
|
|
|
|
|
|
|
|
```toml
|
|
|
|
# At most one section each of 'keys.normal', 'keys.insert' and 'keys.select'
|
|
|
|
[keys.normal]
|
|
|
|
a = "move_char_left" # Maps the 'a' key to the move_char_left command
|
|
|
|
w = "move_line_up" # Maps the 'w' key move_line_up
|
|
|
|
C-S-esc = "select_line" # Maps Control-Shift-Escape to select_line
|
|
|
|
|
|
|
|
[keys.insert]
|
|
|
|
A-x = "normal_mode" # Maps Alt-X to enter normal mode
|
|
|
|
```
|
|
|
|
|
|
|
|
Control, Shift and Alt modifiers are encoded respectively with the prefixes
|
|
|
|
`C-`, `S-` and `A-`. Special keys are encoded as follows:
|
|
|
|
|
|
|
|
* Backspace => "backspace"
|
|
|
|
* Space => "space"
|
|
|
|
* Return/Enter => "ret"
|
|
|
|
* < => "lt"
|
2021-06-17 22:55:39 +02:00
|
|
|
* \> => "gt"
|
|
|
|
* \+ => "plus"
|
|
|
|
* \- => "minus"
|
2021-06-17 13:08:05 +02:00
|
|
|
* ; => "semicolon"
|
|
|
|
* % => "percent"
|
|
|
|
* Left => "left"
|
|
|
|
* Right => "right"
|
|
|
|
* Up => "up"
|
|
|
|
* Home => "home"
|
|
|
|
* End => "end"
|
|
|
|
* Page Up => "pageup"
|
|
|
|
* Page Down => "pagedown"
|
|
|
|
* Tab => "tab"
|
|
|
|
* Back Tab => "backtab"
|
|
|
|
* Delete => "del"
|
|
|
|
* Insert => "ins"
|
|
|
|
* Null => "null"
|
|
|
|
* Escape => "esc"
|
|
|
|
|
|
|
|
Commands can be found in the source code at `../../helix-term/src/commands.rs`
|