├── .gitignore ├── settings.json └── keymap.json /.gitignore: -------------------------------------------------------------------------------- 1 | .tmp* 2 | themes/ 3 | -------------------------------------------------------------------------------- /settings.json: -------------------------------------------------------------------------------- 1 | // Zed settings 2 | // 3 | // For information on how to configure Zed, see the Zed 4 | // documentation: https://zed.dev/docs/configuring-zed 5 | // 6 | // To see all of Zed's default settings without changing your 7 | // custom settings, run the `open default settings` command 8 | // from the command palette or from `Zed` application menu. 9 | { 10 | "base_keymap": "JetBrains", 11 | "theme": "One Dark", 12 | "vim_mode": true, 13 | "ui_font_size": 16, 14 | "buffer_font_size": 16, 15 | "vim": { 16 | // "always": use system clipboard 17 | // "never": don't use system clipboard 18 | // "on_yank": use system clipboard for yank operations 19 | "use_system_clipboard": "always", 20 | // Lets `f` and `t` motions extend across multiple lines 21 | "use_multiline_find": true, 22 | "use_smartcase_find": true 23 | }, 24 | "relative_line_numbers": true, 25 | "scrollbar": { 26 | "show": "never" 27 | }, 28 | // allow cursor to reach edges of screen 29 | "vertical_scroll_margin": 10, 30 | "inlay_hints": { 31 | "enabled": true 32 | }, 33 | "git": { 34 | "inline_blame": { 35 | "enabled": true 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /keymap.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "context": "Editor && (showing_code_actions || showing_completions)", 4 | "bindings": { 5 | "ctrl-j": "editor::ContextMenuNext", 6 | "ctrl-k": "editor::ContextMenuPrev", 7 | "tab": "editor::ContextMenuNext", 8 | "shift-tab": "editor::ContextMenuPrev" 9 | } 10 | }, 11 | { 12 | "context": "Editor && VimControl && !VimWaiting && !menu", 13 | "bindings": { 14 | // Motion 15 | "ctrl-shift-alt-w": "vim::NextWordStart", 16 | "ctrl-shift-alt-b": "vim::PreviousWordStart", 17 | "ctrl-shift-alt-e": "vim::NextWordEnd", 18 | // Goto mode 19 | "g n": "pane::ActivateNextItem", 20 | "g p": "pane::ActivatePrevItem", 21 | // "tab": "pane::ActivateNextItem", 22 | // "shift-tab": "pane::ActivatePrevItem", 23 | "H": "pane::ActivatePrevItem", 24 | "L": "pane::ActivateNextItem", 25 | "g l": "vim::EndOfLine", 26 | "g h": "vim::StartOfLine", 27 | "g s": "vim::FirstNonWhitespace", // "g s" default behavior is "space s" 28 | "g e": "vim::EndOfDocument", 29 | "g y": "editor::GoToTypeDefinition", 30 | "g r": "editor::FindAllReferences", // zed specific 31 | "g t": "vim::WindowTop", 32 | "g c": "vim::WindowMiddle", 33 | "g b": "vim::WindowBottom", 34 | // Window mode 35 | "space w h": ["workspace::ActivatePaneInDirection", "Left"], 36 | "space w l": ["workspace::ActivatePaneInDirection", "Right"], 37 | "space w k": ["workspace::ActivatePaneInDirection", "Up"], 38 | "space w j": ["workspace::ActivatePaneInDirection", "Down"], 39 | "space w q": "pane::CloseActiveItem", 40 | "space w s": "pane::SplitRight", 41 | "space w r": "pane::SplitRight", 42 | "space w v": "pane::SplitDown", 43 | "space w d": "pane::SplitDown", 44 | // Space mode 45 | "space f": "file_finder::Toggle", 46 | "space k": "editor::Hover", 47 | "space s": "outline::Toggle", 48 | "space shift-s": "project_symbols::Toggle", 49 | "space d": "editor::GoToDiagnostic", 50 | "space shift-d": "diagnostics::Deploy", 51 | "space r": "editor::Rename", 52 | "space a": "editor::ToggleCodeActions", 53 | "space h": "editor::SelectAllMatches", 54 | "space c": "editor::ToggleComments", 55 | // Match mode 56 | "m m": "vim::Matching", 57 | "m i w": ["workspace::SendKeystrokes", "v i w"], 58 | // Misc 59 | "ctrl-k": "editor::MoveLineUp", 60 | "ctrl-j": "editor::MoveLineDown", 61 | "n": "vim::PreviousWordStart", 62 | "ctrl-v": "editor::Paste", 63 | "shift-u": "editor::Redo", 64 | "d": "vim::DeleteRight", 65 | "%": "editor::SelectAll", 66 | "ctrl-c": "editor::ToggleComments" 67 | } 68 | }, 69 | { 70 | "context": "Editor && VimControl && (vim_mode == normal || vim_mode == visual) && !VimWaiting && !menu", 71 | "bindings": { 72 | // put key-bindings here if you want them to work in normal & visual mode 73 | } 74 | }, 75 | { 76 | "context": "Editor && VimControl && vim_mode == normal && !VimWaiting && !menu", 77 | "bindings": { 78 | // put key-bindings here if you want them to work only in normal mode 79 | "b": ["workspace::SendKeystrokes", "v ctrl-shift-alt-b"], 80 | "w": ["workspace::SendKeystrokes", "v ctrl-shift-alt-w"], 81 | "e": ["workspace::SendKeystrokes", "v ctrl-shift-alt-e"], 82 | "x": "vim::ToggleVisualLine" 83 | } 84 | }, 85 | { 86 | "context": "Editor && VimControl && vim_mode == visual && !VimWaiting && !menu", 87 | "bindings": { 88 | // visual, visual line & visual block modes 89 | "b": ["workspace::SendKeystrokes", "v v ctrl-shift-alt-b"], 90 | "w": ["workspace::SendKeystrokes", "v v ctrl-shift-alt-w"], 91 | "e": ["workspace::SendKeystrokes", "v v ctrl-shift-alt-e"], 92 | "x": ["workspace::SendKeystrokes", "j"] 93 | } 94 | }, 95 | { 96 | "context": "Editor && VimControl && vim_mode == insert && !menu", 97 | "bindings": { 98 | // put key-bindings here if you want them to work in insert mode 99 | } 100 | }, 101 | { 102 | "context": "Dock", 103 | "bindings": { 104 | // Window mode 105 | "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"], 106 | "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"], 107 | "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"], 108 | "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"] 109 | } 110 | } 111 | ] 112 | --------------------------------------------------------------------------------