nixos configs
1[
2 {
3 // "context": "VimControl && !menu && vim_mode != operator && vim_mode != visual",
4 // basic movement
5 "context": "!menu && vim_mode == normal && vim_mode != operator && vim_mode != visual",
6 "bindings": {
7 "n": "vim::Left",
8 "e": "vim::Down",
9 "u": "vim::Up",
10 "i": "vim::Right",
11 "h": "vim::PageDown",
12 "k": "vim::PageUp",
13 "space n": "vim::StartOfLine",
14 "space i": "vim::EndOfLine",
15 "y": "vim::NextWordStart",
16 "space y": "vim::NextWordEnd",
17 "l": "vim::PreviousWordStart",
18 "space l": "vim::PreviousWordEnd",
19 "space u": "vim::StartOfDocument",
20 "space e": "vim::EndOfDocument"
21 }
22 },
23 {
24 "context": "Editor && !menu && vim_mode == insert",
25 "bindings": {
26 "escape": ["workspace::SendKeystrokes", "escape :w enter"]
27 }
28 },
29 {
30 "context": "vim_mode == replace",
31 "bindings": {
32 "'": "vim::AnyQuotes",
33 "(": "vim::AnyBrackets",
34 "n": "vim::CurrentLine",
35 "e": "vim::Word"
36 }
37 },
38 {
39 // "context": "vim_mode == normal || vim_mode == visual || vim_mode == operator",
40 "context": "vim_mode == visual",
41 "bindings": {
42 "r": "vim::PushChange",
43 "i": ["vim::PushObject", { "around": false }],
44 "w": "vim::Word",
45 "e": ["workspace::SendKeystrokes", "i w"],
46 "t u": "vim::SelectLargerSyntaxNode",
47 "t e": "vim::SelectSmallerSyntaxNode"
48 }
49 },
50 {
51 "context": "Editor && vim_mode == normal",
52 "bindings": {
53 "escape": "editor::Cancel",
54 ":": "command_palette::Toggle",
55 ".": "vim::Repeat",
56 "ctrl-w": "vim::Undo",
57 "ctrl-f": "vim::Redo",
58 "r": "vim::PushChange",
59 // insert moves
60 "s n": "vim::InsertBefore",
61 "s i": "vim::InsertAfter",
62 "s u": "vim::InsertLineAbove",
63 "s e": "vim::InsertLineBelow",
64 "s o": "vim::InsertEndOfLine",
65 "s m": "vim::InsertFirstNonWhitespace",
66 // navigation
67 "t m": "tab_switcher::Toggle",
68 "t n": ["workspace::SendKeystrokes", "cmd-p"],
69 "t t": "editor::GoToDefinition",
70 "t e": "outline::Toggle",
71 "t u": "project_symbols::Toggle",
72 "t r": "editor::FindAllReferences",
73 "= =": "editor::Format",
74 // lsp
75 "a .": "editor::Hover",
76 "a o": "editor::Rename",
77 "a ;": "editor::ToggleCodeActions",
78 "t d d": "editor::GoToDiagnostic",
79 "t d e": "diagnostics::DeployCurrentFile",
80 "t d u": "diagnostics::Deploy",
81 // visual
82 "v": "vim::ToggleVisual",
83 // window
84 "w w": "pane::SplitLeft",
85 "w ,": "pane::CloseActiveItem",
86 "w i": "workspace::ActivatePaneRight",
87 "w n": "workspace::ActivatePaneLeft",
88 "w e": "workspace::ActivatePaneDown",
89 "w u": "workspace::ActivatePaneUp",
90 // copy and paste
91 // TODO missing paste with direction
92 "c": "vim::PushYank",
93 "p": "vim::Paste",
94 }
95 }
96]