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:

# 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"
  • > => "gt"
  • + => "plus"
  • - => "minus"
  • ; => "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