mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-24 10:26:18 +04:00
Docs Key-Remapping: Move Commands to top as introduction (#11953)
This commit is contained in:
parent
8c6ca3c0fc
commit
2f6a113fbe
@ -4,10 +4,31 @@ ## Key remapping
|
|||||||
file. (More powerful solutions such as rebinding via commands will be
|
file. (More powerful solutions such as rebinding via commands will be
|
||||||
available in the future).
|
available in the future).
|
||||||
|
|
||||||
|
There are three kinds of commands that can be used in keymaps:
|
||||||
|
|
||||||
|
* Static commands: commands like `move_char_right` which are usually bound to
|
||||||
|
keys and used for movement and editing. A list of static commands is
|
||||||
|
available in the [Keymap](./keymap.html) documentation and in the source code
|
||||||
|
in [`helix-term/src/commands.rs`](https://github.com/helix-editor/helix/blob/master/helix-term/src/commands.rs)
|
||||||
|
at the invocation of `static_commands!` macro.
|
||||||
|
* Typable commands: commands that can be executed from command mode (`:`), for
|
||||||
|
example `:write!`. See the [Commands](./commands.html) documentation for a
|
||||||
|
list of available typeable commands or the `TypableCommandList` declaration in
|
||||||
|
the source code at [`helix-term/src/commands/typed.rs`](https://github.com/helix-editor/helix/blob/master/helix-term/src/commands/typed.rs).
|
||||||
|
* Macros: sequences of keys that are executed in order. These keybindings
|
||||||
|
start with `@` and then list any number of keys to be executed. For example
|
||||||
|
`@miw` can be used to select the surrounding word. For now, macro keybindings
|
||||||
|
are not allowed in keybinding sequences due to limitations in the way that
|
||||||
|
command sequences are executed. Modifier keys (e.g. Alt+o) can be used
|
||||||
|
like `"<A-o>"`, e.g. `"@miw<A-o>"`
|
||||||
|
|
||||||
To remap keys, create a `config.toml` file in your `helix` configuration
|
To remap keys, create a `config.toml` file in your `helix` configuration
|
||||||
directory (default `~/.config/helix` on Linux systems) with a structure like
|
directory (default `~/.config/helix` on Linux systems) with a structure like
|
||||||
this:
|
this:
|
||||||
|
|
||||||
|
> 💡 To set a modifier + key as a keymap, type `A-X = ...` or `C-X = ...` for Alt + X or Ctrl + X. Combine with Shift using a dash, e.g. `C-S-esc`.
|
||||||
|
> Within macros, wrap them in `<>`, e.g. `<A-X>` and `<C-X>` to distinguish from the `A` or `C` keys.
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
# At most one section each of 'keys.normal', 'keys.insert' and 'keys.select'
|
# At most one section each of 'keys.normal', 'keys.insert' and 'keys.select'
|
||||||
[keys.normal]
|
[keys.normal]
|
||||||
@ -18,6 +39,7 @@ # At most one section each of 'keys.normal', 'keys.insert' and 'keys.select'
|
|||||||
"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
||||||
g = { a = "code_action" } # Maps `ga` to show possible code actions
|
g = { a = "code_action" } # Maps `ga` to show possible code actions
|
||||||
"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
||||||
|
"A-x" = "@x<A-d>" # Maps Alt-x to a macro selecting the whole line and deleting it without yanking it
|
||||||
|
|
||||||
[keys.insert]
|
[keys.insert]
|
||||||
"A-x" = "normal_mode" # Maps Alt-X to enter normal mode
|
"A-x" = "normal_mode" # Maps Alt-X to enter normal mode
|
||||||
@ -74,23 +96,3 @@ ## Special keys and modifiers
|
|||||||
| Escape | `"esc"` |
|
| Escape | `"esc"` |
|
||||||
|
|
||||||
Keys can be disabled by binding them to the `no_op` command.
|
Keys can be disabled by binding them to the `no_op` command.
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
There are three kinds of commands that can be used in keymaps:
|
|
||||||
|
|
||||||
* Static commands: commands like `move_char_right` which are usually bound to
|
|
||||||
keys and used for movement and editing. A list of static commands is
|
|
||||||
available in the [Keymap](./keymap.html) documentation and in the source code
|
|
||||||
in [`helix-term/src/commands.rs`](https://github.com/helix-editor/helix/blob/master/helix-term/src/commands.rs)
|
|
||||||
at the invocation of `static_commands!` macro.
|
|
||||||
* Typable commands: commands that can be executed from command mode (`:`), for
|
|
||||||
example `:write!`. See the [Commands](./commands.html) documentation for a
|
|
||||||
list of available typeable commands or the `TypableCommandList` declaration in
|
|
||||||
the source code at [`helix-term/src/commands/typed.rs`](https://github.com/helix-editor/helix/blob/master/helix-term/src/commands/typed.rs).
|
|
||||||
* Macros: sequences of keys that are executed in order. These keybindings
|
|
||||||
start with `@` and then list any number of keys to be executed. For example
|
|
||||||
`@miw` can be used to select the surrounding word. For now, macro keybindings
|
|
||||||
are not allowed in keybinding sequences due to limitations in the way that
|
|
||||||
command sequences are executed. Modifier keys (e.g. Alt+o) can be used
|
|
||||||
like `"<A-o>"`, e.g. `"@miw<A-o>"`
|
|
||||||
|
Loading…
Reference in New Issue
Block a user