Add keymap configuration for Vim and terminal modes

This commit is contained in:
Jason Hilder 2026-03-17 09:23:35 +02:00 committed by GitHub
parent 4657eb9818
commit 96ebaf5253
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 75 additions and 0 deletions

75
config/zed/keymap.json Normal file
View File

@ -0,0 +1,75 @@
[
// VIM NORMAL MODE
{
"context": "VimControl && vim_mode == normal",
"bindings": {
"ctrl-j": "vim::ScrollDown",
"ctrl-k": "vim::ScrollUp",
"ctrl-h": "pane::ActivatePreviousItem",
"ctrl-l": "pane::ActivateNextItem",
"space f": "file_finder::Toggle",
"space c": "pane::CloseActiveItem",
"space t": "workspace::NewCenterTerminal",
"space e": "project_panel::ToggleFocus",
"space p e": "workspace::ToggleLeftDock",
"space q": "pane::CloseAllItems",
"space h": "buffer_search::Dismiss",
"space a": "workspace::SaveAll",
"space l s": "project_symbols::Toggle",
"space l i": "editor::GoToImplementationSplit",
"space l r": "editor::Rename",
"space s t": "workspace::NewSearch",
"space b l": "pane::CloseItemsToTheRight",
"space b h": "pane::CloseItemsToTheLeft",
"space b a": "pane::ReopenClosedItem",
"space z f": ["workspace::SendKeystrokes", "shift-v shift-f ctrl-c"],
"space z a": [ "workspace::SendKeystrokes", "g g shift-v shift-g shift-f ctrl-c g g" ],
"space z u": [ "workspace::SendKeystrokes", "g g shift-v shift-g space z z ctrl-c g g" ],
"space g g": "git::Branch",
"ctrl-n": "menu::SelectNext", // Navigate down in lists (e.g., file finder, search results)
"ctrl-p": "menu::SelectPrevious", // Navigate up in lists
"ctrl-/": "editor::ToggleComments",
"ctrl-space": "workspace::ToggleBottomDock",
}
},
// VIM VISUAL MODE
{
"context": "Editor && vim_mode == visual && !menu && !Terminal",
"bindings": {
"shift-k": "editor::MoveLineUp",
"shift-j": "editor::MoveLineDown",
}
},
{
"context": "Editor && vim_mode != insert && !VimWaiting && mode != single_line",
"bindings": {
"g d": "editor::GoToDefinition",
"g i": "editor::GoToImplementation",
"g r": "editor::FindAllReferences"
}
},
// TERMINAL MODE
{
"context": "Terminal",
"bindings": {
"ctrl-space": "workspace::ToggleBottomDock",
"ctrl-o": "workspace::NewTerminal",
"ctrl-l": "pane::ActivateNextItem",
"ctrl-h": "pane::ActivatePreviousItem",
"ctrl-q": "pane::CloseActiveItem",
"ctrl-j": "terminal::Clear"
}
},
// FILE TREE
{
"context": "!renaming && ProjectPanel && !Terminal && !VimWaiting && vim_mode != insert && !editing",
"bindings": {
"a": "project_panel::NewFile",
"d": "project_panel::Delete",
"r": "project_panel::Rename",
"space e": "project_panel::Toggle",
"ctrl-n": "menu::SelectNext", // Navigate project panel list
"ctrl-p": "menu::SelectPrevious"
}
},
]