mirror of
https://github.com/ilyakooo0/helix.git
synced 2024-12-01 19:58:12 +03:00
book: Refer to keys by key names, not representations
This is an attempt to clean up the inconsistent way that keys are written in various places. These rules require the fewest changes to the existing text. Use the "Key name", as defined in remapping.md, which uses "Some-Modifiers-PascalCaseKey". The "Representation", which uses "S-M-lowercasekey", is only used for configuration entries. For key combinations which do not present a popup, just present the keys one after the other, with no intervening space, like `]p`. For key combinations which present a popup, separate them with ` + `, like `Space + f`. The Ctrl modifier is called Ctrl, not Control.
This commit is contained in:
parent
e542f2e08f
commit
425df93fb8
@ -129,7 +129,7 @@
|
||||
| `X` | Extend selection to line bounds (line-wise selection) | `extend_to_line_bounds` |
|
||||
| `Alt-x` | Shrink selection to line bounds (line-wise selection) | `shrink_to_line_bounds` |
|
||||
| `J` | Join lines inside selection | `join_selections` |
|
||||
| `A-J` | Join lines inside selection and select space | `join_selections_space` |
|
||||
| `Alt-J` | Join lines inside selection and select space | `join_selections_space` |
|
||||
| `K` | Keep selections matching the regex | `keep_selections` |
|
||||
| `Alt-K` | Remove selections matching the regex | `remove_selections` |
|
||||
| `Ctrl-c` | Comment/uncomment the selections | `toggle_comments` |
|
||||
@ -278,7 +278,7 @@ This layer is a kludge of mappings, mostly pickers.
|
||||
| `/` | Global search in workspace folder | `global_search` |
|
||||
| `?` | Open command palette | `command_palette` |
|
||||
|
||||
> TIP: Global search displays results in a fuzzy picker, use `space + '` to bring it back up after opening a file.
|
||||
> TIP: Global search displays results in a fuzzy picker, use `Space + '` to bring it back up after opening a file.
|
||||
|
||||
##### Popup
|
||||
|
||||
@ -311,8 +311,8 @@ Mappings in the style of [vim-unimpaired](https://github.com/tpope/vim-unimpaire
|
||||
| `]t` | Go to previous test (**TS**) | `goto_prev_test` |
|
||||
| `]p` | Go to next paragraph | `goto_next_paragraph` |
|
||||
| `[p` | Go to previous paragraph | `goto_prev_paragraph` |
|
||||
| `[space` | Add newline above | `add_newline_above` |
|
||||
| `]space` | Add newline below | `add_newline_below` |
|
||||
| `[Space` | Add newline above | `add_newline_above` |
|
||||
| `]Space` | Add newline below | `add_newline_below` |
|
||||
|
||||
## Insert mode
|
||||
|
||||
@ -414,8 +414,8 @@ Keys to use within prompt, Remapping currently not supported.
|
||||
| `Alt-d`, `Alt-Delete`, `Ctrl-Delete` | Delete next word |
|
||||
| `Ctrl-u` | Delete to start of line |
|
||||
| `Ctrl-k` | Delete to end of line |
|
||||
| `backspace`, `Ctrl-h` | Delete previous char |
|
||||
| `delete`, `Ctrl-d` | Delete next char |
|
||||
| `Backspace`, `Ctrl-h` | Delete previous char |
|
||||
| `Delete`, `Ctrl-d` | Delete next char |
|
||||
| `Ctrl-s` | Insert a word under doc cursor, may be changed to Ctrl-r Ctrl-w later |
|
||||
| `Ctrl-p`, `Up` | Select previous history |
|
||||
| `Ctrl-n`, `Down` | Select next history |
|
||||
|
@ -11,11 +11,11 @@ this:
|
||||
```toml
|
||||
# At most one section each of 'keys.normal', 'keys.insert' and 'keys.select'
|
||||
[keys.normal]
|
||||
C-s = ":w" # Maps the Control-s to the typable command :w which is an alias for :write (save file)
|
||||
C-o = ":open ~/.config/helix/config.toml" # Maps the Control-o to opening of the helix config file
|
||||
C-s = ":w" # Maps the Ctrl-s to the typable command :w which is an alias for :write (save file)
|
||||
C-o = ":open ~/.config/helix/config.toml" # Maps the Ctrl-o to opening of the helix config file
|
||||
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" = "extend_line" # Maps Control-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
|
||||
"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
||||
|
||||
@ -25,7 +25,7 @@ j = { k = "normal_mode" } # Maps `jk` to exit insert mode
|
||||
```
|
||||
> NOTE: Typable commands can also be remapped, remember to keep the `:` prefix to indicate it's a typable command.
|
||||
|
||||
Control, Shift and Alt modifiers are encoded respectively with the prefixes
|
||||
Ctrl, Shift and Alt modifiers are encoded respectively with the prefixes
|
||||
`C-`, `S-` and `A-`. Special keys are encoded as follows:
|
||||
|
||||
| Key name | Representation |
|
||||
|
@ -244,7 +244,7 @@ These scopes are used for theming the editor interface.
|
||||
| `ui.statusline.insert` | Statusline mode during insert mode ([only if `editor.color-modes` is enabled][editor-section]) |
|
||||
| `ui.statusline.select` | Statusline mode during select mode ([only if `editor.color-modes` is enabled][editor-section]) |
|
||||
| `ui.statusline.separator` | Separator character in statusline |
|
||||
| `ui.popup` | Documentation popups (e.g space-k) |
|
||||
| `ui.popup` | Documentation popups (e.g Space + k) |
|
||||
| `ui.popup.info` | Prompt for multiple key options |
|
||||
| `ui.window` | Border lines separating splits |
|
||||
| `ui.help` | Description box for commands |
|
||||
@ -252,7 +252,7 @@ These scopes are used for theming the editor interface.
|
||||
| `ui.text.focus` | |
|
||||
| `ui.text.info` | The key: command text in `ui.popup.info` boxes |
|
||||
| `ui.virtual.ruler` | Ruler columns (see the [`editor.rulers` config][editor-section]) |
|
||||
| `ui.virtual.whitespace` | Visible white-space characters |
|
||||
| `ui.virtual.whitespace` | Visible whitespace characters |
|
||||
| `ui.virtual.indent-guide` | Vertical indent width guides |
|
||||
| `ui.menu` | Code and command completion menus |
|
||||
| `ui.menu.selected` | Selected autocomplete item |
|
||||
|
@ -53,7 +53,7 @@ Multiple characters are currently not supported, but planned.
|
||||
|
||||
## Syntax-tree Motions
|
||||
|
||||
`A-p`, `A-o`, `A-i`, and `A-n` (or `Alt` and arrow keys) move the primary
|
||||
`Alt-p`, `Alt-o`, `Alt-i`, and `Alt-n` (or `Alt` and arrow keys) move the primary
|
||||
selection according to the selection's place in the syntax tree. Let's walk
|
||||
through an example to get familiar with them. Many languages have a syntax like
|
||||
so for function calls:
|
||||
@ -100,13 +100,13 @@ in the tree above.
|
||||
func([arg1], arg2, arg3)
|
||||
```
|
||||
|
||||
Using `A-n` would select the next sibling in the syntax tree: `arg2`.
|
||||
Using `Alt-n` would select the next sibling in the syntax tree: `arg2`.
|
||||
|
||||
```
|
||||
func(arg1, [arg2], arg3)
|
||||
```
|
||||
|
||||
While `A-o` would expand the selection to the parent node. In the tree above we
|
||||
While `Alt-o` would expand the selection to the parent node. In the tree above we
|
||||
can see that we would select the `arguments` node.
|
||||
|
||||
```
|
||||
@ -114,10 +114,10 @@ func[(arg1, arg2, arg3)]
|
||||
```
|
||||
|
||||
There is also some nuanced behavior that prevents you from getting stuck on a
|
||||
node with no sibling. If we have a selection on `arg1`, `A-p` would bring us
|
||||
node with no sibling. If we have a selection on `arg1`, `Alt-p` would bring us
|
||||
to the previous child node. Since `arg1` doesn't have a sibling to its left,
|
||||
though, we climb the syntax tree and then take the previous selection. So `A-p`
|
||||
will move the selection over to the "func" `identifier`.
|
||||
though, we climb the syntax tree and then take the previous selection. So
|
||||
`Alt-p` will move the selection over to the "func" `identifier`.
|
||||
|
||||
```
|
||||
[func](arg1, arg2, arg3)
|
||||
|
Loading…
Reference in New Issue
Block a user