7> NOTE: `f`, `F`, `t` and `T` are not confined to the current line.
10| ----- | ----------- |
11| `h`, `Left` | Move left |
12| `j`, `Down` | Move down |
13| `k`, `Up` | Move up |
14| `l`, `Right` | Move right |
15| `w` | Move next word start |
16| `b` | Move previous word start |
17| `e` | Move next word end |
18| `W` | Move next WORD start |
19| `B` | Move previous WORD start |
20| `E` | Move next WORD end |
21| `t` | Find 'till next char |
22| `f` | Find next char |
23| `T` | Find 'till previous char |
24| `F` | Find previous char |
25| `Home` | Move to the start of the line |
26| `End` | Move to the end of the line |
27| `PageUp` | Move page up |
28| `PageDown` | Move page down |
29| `Ctrl-u` | Move half page up |
30| `Ctrl-d` | Move half page down |
31| `Ctrl-i` | Jump forward on the jumplist TODO: conflicts tab |
32| `Ctrl-o` | Jump backward on the jumplist |
33| `v` | Enter [select (extend) mode](#select--extend-mode) |
34| `g` | Enter [goto mode](#goto-mode) |
35| `m` | Enter [match mode](#match-mode) |
36| `:` | Enter command mode |
37| `z` | Enter [view mode](#view-mode) |
38| `Ctrl-w` | Enter [window mode](#window-mode) (maybe will be remove for spc w w later) |
39| `Space` | Enter [space mode](#space-mode) |
40| `K` | Show documentation for the item under the cursor |
45| ----- | ----------- |
46| `r` | Replace with a character |
47| `R` | Replace with yanked text |
48| `~` | Switch case of the selected text |
49| `` ` `` | Set the selected text to lower case |
50| `` Alt-` `` | Set the selected text to upper case |
51| `i` | Insert before selection |
52| `a` | Insert after selection (append) |
53| `I` | Insert at the start of the line |
54| `A` | Insert at the end of the line |
55| `o` | Open new line below selection |
56| `O` | Open new line above selection |
59| `y` | Yank selection |
60| `p` | Paste after selection |
61| `P` | Paste before selection |
62| `"` `<reg>` | Select a register to yank to or paste from |
63| `>` | Indent selection |
64| `<` | Unindent selection |
65| `=` | Format selection |
66| `d` | Delete selection |
67| `c` | Change selection (delete and enter insert mode) |
69### Selection manipulation
72| ----- | ----------- |
73| `s` | Select all regex matches inside selections |
74| `S` | Split selection into subselections on regex matches |
75| `Alt-s` | Split selection on newlines |
76| `;` | Collapse selection onto a single cursor |
77| `Alt-;` | Flip selection cursor and anchor |
78| `C` | Copy selection onto the next line |
79| `Alt-C` | Copy selection onto the previous line |
80| `(` | Rotate main selection forward |
81| `)` | Rotate main selection backward |
82| `Alt-(` | Rotate selection contents forward |
83| `Alt-)` | Rotate selection contents backward |
84| `%` | Select entire file |
85| `x` | Select current line, if already selected, extend to next line |
86| `X` | Extend selection to line bounds (line-wise selection) |
87| | Expand selection to parent syntax node TODO: pick a key |
88| `J` | Join lines inside selection |
89| `K` | Keep selections matching the regex TODO: overlapped by hover help |
90| `Space` | Keep only the primary selection TODO: overlapped by space mode |
91| `Ctrl-c` | Comment/uncomment the selections |
96| ----- | ----------- |
97| `Escape` | Switch to normal mode |
98| `Ctrl-x` | Autocomplete |
99| `Ctrl-w` | Delete previous word |
103> TODO: The search implementation isn't ideal yet -- we don't support searching
104in reverse, or searching via smartcase.
107| ----- | ----------- |
108| `/` | Search for regex pattern |
109| `n` | Select next search match |
110| `N` | Add next search match to selection |
111| `*` | Use current selection as the search pattern |
115> NOTE: `[` and `]` will likely contain more pair mappings in the style of
116> [vim-unimpaired](https://github.com/tpope/vim-unimpaired)
119| ----- | ----------- |
120| `[d` | Go to previous diagnostic |
121| `]d` | Go to next diagnostic |
122| `[D` | Go to first diagnostic in document |
123| `]D` | Go to last diagnostic in document |
125## Select / extend mode
127I'm still pondering whether to keep this mode or not. It changes movement
128commands to extend the existing selection instead of replacing it.
130> NOTE: It's a bit confusing at the moment because extend hasn't been
131> implemented for all movement commands yet.
135View mode is intended for scrolling and manipulating the view without changing
139| ----- | ----------- |
140| `z` , `c` | Vertically center the line |
141| `t` | Align the line to the top of the screen |
142| `b` | Align the line to the bottom of the screen |
143| `m` | Align the line to the middle of the screen (horizontally) |
144| `j` | Scroll the view downwards |
145| `k` | Scroll the view upwards |
149Jumps to various locations.
151> NOTE: Some of these features are only available with the LSP present.
154| ----- | ----------- |
155| `g` | Go to the start of the file |
156| `e` | Go to the end of the file |
157| `h` | Go to the start of the line |
158| `l` | Go to the end of the line |
159| `s` | Go to first non-whitespace character of the line |
160| `t` | Go to the top of the screen |
161| `m` | Go to the middle of the screen |
162| `b` | Go to the bottom of the screen |
163| `d` | Go to definition |
164| `y` | Go to type definition |
165| `r` | Go to references |
166| `i` | Go to implementation |
167| `a` | Go to the last accessed/alternate file |
171Enter this mode using `m` from normal mode. See the relavant section
172in [Usage](./usage.md) for an explanation about [surround](./usage.md#surround)
173and [textobject](./usage.md#textobject) usage.
176| ----- | ----------- |
177| `m` | Goto matching bracket |
178| `s` `<char>` | Surround current selection with `<char>` |
179| `r` `<from><to>` | Replace surround character `<from>` with `<to>` |
180| `d` `<char>` | Delete surround character `<char>` |
181| `a` `<object>` | Select around textobject |
182| `i` `<object>` | Select inside textobject |
186TODO: Mappings for selecting syntax nodes (a superset of `[`).
190This layer is similar to vim keybindings as kakoune does not support window.
193| ----- | ------------- |
194| `w`, `Ctrl-w` | Switch to next window |
195| `v`, `Ctrl-v` | Vertical right split |
196| `h`, `Ctrl-h` | Horizontal bottom split |
197| `q`, `Ctrl-q` | Close current window |
201This layer is a kludge of mappings I had under leader key in neovim.
204| ----- | ----------- |
205| `f` | Open file picker |
206| `b` | Open buffer picker |
207| `s` | Open symbol picker (current document) |
208| `a` | Apply code action |
209| `'` | Open last fuzzy picker |
210| `w` | Enter [window mode](#window-mode) |
211| `space` | Keep primary selection TODO: it's here because space mode replaced it |
212| `p` | Paste system clipboard after selections |
213| `P` | Paste system clipboard before selections |
214| `y` | Join and yank selections to clipboard |
215| `Y` | Yank main selection to clipboard |
216| `R` | Replace selections by clipboard contents |
220Keys to use within picker.
223| ----- | ------------- |
224| `Up`, `Ctrl-p` | Previous entry |
225| `Down`, `Ctrl-n` | Next entry |
226| `Ctrl-space` | Filter options |
227| `Enter` | Open selected |
228| `Ctrl-h` | Open horizontally |
229| `Ctrl-v` | Open vertically |
230| `Escape`, `Ctrl-c` | Close picker |
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list