diff --git a/book/src/configuration.md b/book/src/configuration.md index f11cebd46..363279f2f 100644 --- a/book/src/configuration.md +++ b/book/src/configuration.md @@ -26,62 +26,62 @@ if the key contains a dot `'.'`, it must be quoted to prevent it being parsed as Possible modifiers: -| modifier | -| --- | -| bold | -| dim | -| italic | -| underlined | -| slow\_blink | -| rapid\_blink | -| reversed | -| hidden | -| crossed\_out | +| Modifier | +| --- | +| `bold` | +| `dim` | +| `italic` | +| `underlined` | +| `slow\_blink` | +| `rapid\_blink` | +| `reversed` | +| `hidden` | +| `crossed\_out` | Possible keys: -| key | notes | -| --- | --- | -| attribute | | -| keyword | | -| keyword.directive | preprocessor directives (\#if in C) | -| namespace | | -| punctuation | | -| punctuation.delimiter | | -| operator | | -| special | | -| property | | -| variable | | -| variable.parameter | | -| type | | -| type.builtin | | -| constructor | | -| function | | -| function.macro | | -| function.builtin | | -| comment | | -| variable.builtin | | -| constant | | -| constant.builtin | | -| string | | -| number | | -| escape | escaped characters | -| label | used for lifetimes | -| module | | -| ui.background | | -| ui.linenr | | -| ui.statusline | | -| ui.popup | | -| ui.window | | -| ui.help | | -| ui.text | | -| ui.text.focus | | -| ui.menu.selected | | -| ui.selection | for selections in the editing area | -| warning | LSP warning | -| error | LSP error | -| info | LSP info | -| hint | LSP hint | +| Key | Notes | +| --- | --- | +| `attribute` | | +| `keyword` | | +| `keyword.directive` | Preprocessor directives (\#if in C) | +| `namespace` | | +| `punctuation` | | +| `punctuation.delimiter` | | +| `operator` | | +| `special` | | +| `property` | | +| `variable` | | +| `variable.parameter` | | +| `type` | | +| `type.builtin` | | +| `constructor` | | +| `function` | | +| `function.macro` | | +| `function.builtin` | | +| `comment` | | +| `variable.builtin` | | +| `constant` | | +| `constant.builtin` | | +| `string` | | +| `number` | | +| `escape` | Escaped characters | +| `label` | For lifetimes | +| `module` | | +| `ui.background` | | +| `ui.linenr` | | +| `ui.statusline` | | +| `ui.popup` | | +| `ui.window` | | +| `ui.help` | | +| `ui.text` | | +| `ui.text.focus` | | +| `ui.menu.selected` | | +| `ui.selection` | For selections in the editing area | +| `warning` | LSP warning | +| `error` | LSP error | +| `info` | LSP info | +| `hint` | LSP hint | These keys match [tree-sitter scopes](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#theme). We half-follow the common scopes from [macromates language grammars](https://macromates.com/manual/en/language_grammars) with some differences. diff --git a/book/src/keymap.md b/book/src/keymap.md index 72bedbf37..aee4b3a41 100644 --- a/book/src/keymap.md +++ b/book/src/keymap.md @@ -4,100 +4,102 @@ ### Movement -| Key | Description | -|-----|-----------| -| h, Left | move left | -| j, Down | move down | -| k, Up | move up | -| l, Right | move right | -| w | move next word start | -| b | move previous word start | -| e | move next word end | -| t | find 'till next char | -| f | find next char | -| T | find 'till previous char | -| F | find previous char | -| Home | move to the start of the line | -| End | move to the end of the line | -| m | Jump to matching bracket | -| PageUp | Move page up | -| PageDown | Move page down | -| ctrl-u | Move half page up | -| ctrl-d | Move half page down | -| ctrl-i | Jump forward on the jumplist TODO: conflicts tab | -| ctrl-o | Jump backward on the jumplist | -| v | Enter select (extend) mode | -| g | Enter goto mode | -| : | Enter command mode | -| z | Enter view mode | -| ctrl-w | Enter window mode (maybe will be remove for spc w w later) | -| space | Enter space mode | -| K | Show documentation for the item under the cursor | +> NOTE: `f`, `F`, `t` and `T` are not confined to the current line. + +| Key | Description | +| ----- | ----------- | +| `h`, `Left` | Move left | +| `j`, `Down` | Move down | +| `k`, `Up` | Move up | +| `l`, `Right` | Move right | +| `w` | Move next word start | +| `b` | Move previous word start | +| `e` | Move next word end | +| `t` | Find 'till next char | +| `f` | Find next char | +| `T` | Find 'till previous char | +| `F` | Find previous char | +| `Home` | Move to the start of the line | +| `End` | Move to the end of the line | +| `m` | Jump to matching bracket | +| `PageUp` | Move page up | +| `PageDown` | Move page down | +| `Ctrl-u` | Move half page up | +| `Ctrl-d` | Move half page down | +| `Ctrl-i` | Jump forward on the jumplist TODO: conflicts tab | +| `Ctrl-o` | Jump backward on the jumplist | +| `v` | Enter [select (extend) mode](#select--extend-mode) | +| `g` | Enter [goto mode](#goto-mode) | +| `:` | Enter command mode | +| `z` | Enter [view mode](#view-mode) | +| `Ctrl-w` | Enter [window mode](#window-mode) (maybe will be remove for spc w w later) | +| `Space` | Enter [space mode](#space-mode) | +| `K` | Show documentation for the item under the cursor | ### Changes -| Key | Description | -|-----|-----------| -| r | replace with a character | -| R | replace with yanked text | -| i | Insert before selection | -| a | Insert after selection (append) | -| I | Insert at the start of the line | -| A | Insert at the end of the line | -| o | Open new line below selection | -| o | Open new line above selection | -| u | Undo change | -| U | Redo change | -| y | Yank selection | -| p | Paste after selection | -| P | Paste before selection | -| > | Indent selection | -| < | Unindent selection | -| = | Format selection | -| d | Delete selection | -| c | Change selection (delete and enter insert mode) | +| Key | Description | +| ----- | ----------- | +| `r` | Replace with a character | +| `R` | Replace with yanked text | +| `i` | Insert before selection | +| `a` | Insert after selection (append) | +| `I` | Insert at the start of the line | +| `A` | Insert at the end of the line | +| `o` | Open new line below selection | +| `o` | Open new line above selection | +| `u` | Undo change | +| `U` | Redo change | +| `y` | Yank selection | +| `p` | Paste after selection | +| `P` | Paste before selection | +| `>` | Indent selection | +| `<` | Unindent selection | +| `=` | Format selection | +| `d` | Delete selection | +| `c` | Change selection (delete and enter insert mode) | ### Selection manipulation -| Key | Description | -|-----|-----------| -| s | Select all regex matches inside selections | -| S | Split selection into subselections on regex matches | -| alt-s | Split selection on newlines | -| ; | Collapse selection onto a single cursor | -| alt-; | Flip selection cursor and anchor | -| % | Select entire file | -| x | Select current line | -| X | Extend to next line | -| [ | Expand selection to parent syntax node TODO: pick a key | -| J | join lines inside selection | -| K | keep selections matching the regex TODO: overlapped by hover help | -| space | keep only the primary selection TODO: overlapped by space mode | -| ctrl-c | Comment/uncomment the selections | +| Key | Description | +| ----- | ----------- | +| `s` | Select all regex matches inside selections | +| `S` | Split selection into subselections on regex matches | +| `Alt-s` | Split selection on newlines | +| `;` | Collapse selection onto a single cursor | +| `Alt-;` | Flip selection cursor and anchor | +| `%` | Select entire file | +| `x` | Select current line | +| `X` | Extend to next line | +| `[` | Expand selection to parent syntax node TODO: pick a key | +| `J` | join lines inside selection | +| `K` | keep selections matching the regex TODO: overlapped by hover help | +| `Space` | keep only the primary selection TODO: overlapped by space mode | +| `Ctrl-c` | Comment/uncomment the selections | ### Search > TODO: The search implementation isn't ideal yet -- we don't support searching in reverse, or searching via smartcase. -| Key | Description | -|-----|-----------| -| / | Search for regex pattern | -| n | Select next search match | -| N | Add next search match to selection | -| * | Use current selection as the search pattern | +| Key | Description | +| ----- | ----------- | +| `/` | Search for regex pattern | +| `n` | Select next search match | +| `N` | Add next search match to selection | +| `*` | Use current selection as the search pattern | ### Diagnostics > NOTE: `[` and `]` will likely contain more pair mappings in the style of > [vim-unimpaired](https://github.com/tpope/vim-unimpaired) -| Key | Description | -|-----|-----------| -| [d | Go to previous diagnostic | -| ]d | Go to next diagnostic | -| [D | Go to first diagnostic in document | -| ]D | Go to last diagnostic in document | +| Key | Description | +| ----- | ----------- | +| `[d` | Go to previous diagnostic | +| `]d` | Go to next diagnostic | +| `[D` | Go to first diagnostic in document | +| `]D` | Go to last diagnostic in document | ## Select / extend mode @@ -112,14 +114,14 @@ commands to extend the existing selection instead of replacing it. View mode is intended for scrolling and manipulating the view without changing the selection. -| Key | Description | -|-----|-----------| -| z , c | Vertically center the line | -| t | Align the line to the top of the screen | -| b | Align the line to the bottom of the screen | -| m | Align the line to the middle of the screen (horizontally) | -| j | Scroll the view downwards | -| k | Scroll the view upwards | +| Key | Description | +| ----- | ----------- | +| `z` , `c` | Vertically center the line | +| `t` | Align the line to the top of the screen | +| `b` | Align the line to the bottom of the screen | +| `m` | Align the line to the middle of the screen (horizontally) | +| `j` | Scroll the view downwards | +| `k` | Scroll the view upwards | ## Goto mode @@ -127,21 +129,21 @@ Jumps to various locations. > NOTE: Some of these features are only available with the LSP present. -| Key | Description | -|-----|-----------| -| g | Go to the start of the file | -| e | Go to the end of the file | -| h | Go to the start of the line | -| l | Go to the end of the line | -| s | Go to first non-whitespace character of the line | -| t | Go to the top of the screen | -| m | Go to the middle of the screen | -| b | Go to the bottom of the screen | -| d | Go to definition | -| y | Go to type definition | -| r | Go to references | -| i | Go to implementation | -| a | Go to the last accessed/alternate file | +| Key | Description | +| ----- | ----------- | +| `g` | Go to the start of the file | +| `e` | Go to the end of the file | +| `h` | Go to the start of the line | +| `l` | Go to the end of the line | +| `s` | Go to first non-whitespace character of the line | +| `t` | Go to the top of the screen | +| `m` | Go to the middle of the screen | +| `b` | Go to the bottom of the screen | +| `d` | Go to definition | +| `y` | Go to type definition | +| `r` | Go to references | +| `i` | Go to implementation | +| `a` | Go to the last accessed/alternate file | ## Object mode @@ -151,35 +153,35 @@ TODO: Mappings for selecting syntax nodes (a superset of `[`). This layer is similar to vim keybindings as kakoune does not support window. -| Key | Description | -|-----|-------------| -| w, ctrl-w | Switch to next window | -| v, ctrl-v | Vertical right split | -| h, ctrl-h | Horizontal bottom split | -| q, ctrl-q | Close current window | +| Key | Description | +| ----- | ------------- | +| `w`, `ctrl-w` | Switch to next window | +| `v`, `ctrl-v` | Vertical right split | +| `h`, `ctrl-h` | Horizontal bottom split | +| `q`, `ctrl-q` | Close current window | ## Space mode This layer is a kludge of mappings I had under leader key in neovim. -| Key | Description | -|-----|-----------| -| f | Open file picker | -| b | Open buffer picker | -| s | Open symbol picker (current document)| -| w | Enter window mode | -| space | Keep primary selection TODO: it's here because space mode replaced it | +| Key | Description | +| ----- | ----------- | +| `f` | Open file picker | +| `b` | Open buffer picker | +| `s` | Open symbol picker (current document) | +| `w` | Enter [window mode](#window-mode) | +| `space` | Keep primary selection TODO: it's here because space mode replaced it | # Picker Keys to use within picker. -| Key | Description | -|-----|-------------| -| up, ctrl-p | Previous entry | -| down, ctrl-n | Next entry | -| ctrl-space | Filter options | -| enter | Open selected | -| ctrl-h | Open horizontally | -| ctrl-v | Open vertically | -| escape, ctrl-c | Close picker | +| Key | Description | +| ----- | ------------- | +| `Up`, `Ctrl-p` | Previous entry | +| `Down`, `Ctrl-n` | Next entry | +| `Ctrl-space` | Filter options | +| `Enter` | Open selected | +| `Ctrl-h` | Open horizontally | +| `Ctrl-v` | Open vertically | +| `Escape`, `ctrl-c` | Close picker |