update keymap

Co-authored-by: Kate <kate@zed.dev>
This commit is contained in:
Junkui Zhang 2025-08-27 00:04:43 +08:00
parent 144d1107fd
commit 98ea1d838a

View file

@ -41,14 +41,7 @@
"ctrl-f11": "debugger::StepInto",
"shift-f11": "debugger::StepOut",
"f11": "zed::ToggleFullScreen",
// todo(windows)
// win -> but nearly none app use this
// vscode save all action => ctrl-alt-s ctrl-k s
// ctrl-alt-z => shift-alt-z or ctrl-shift-z
// "ctrl-alt-z": "edit_prediction::RateCompletions",
"ctrl-shift-i": "edit_prediction::ToggleMenu",
// todo(windows) (probably remove binding)
// "ctrl-alt-l": "lsp_tool::ToggleMenu"
"shift-alt-l": "lsp_tool::ToggleMenu"
}
},
@ -150,10 +143,7 @@
"ctrl-h": "buffer_search::DeployReplace",
"ctrl-shift-.": "assistant::QuoteSelection",
"ctrl-shift-,": "assistant::InsertIntoEditor",
// todo(windows) (if vs code has a similar action, use that, otherwise remove this binding)
// the closest equivalent in vs code is "editor.action.selectToBracket",
// no default shortcut
// "ctrl-alt-e": "editor::SelectEnclosingSymbol",
"shift-alt-e": "editor::SelectEnclosingSymbol",
"ctrl-shift-backspace": "editor::GoToPreviousChange",
"ctrl-shift-alt-backspace": "editor::GoToNextChange",
"alt-enter": "editor::OpenSelectionsInMultibuffer"
@ -204,10 +194,6 @@
"use_key_equivalents": true,
"bindings": {
"ctrl-k ctrl-r": "git::Restore",
// todo(windows) (find something, look at what vs code does)
// the closest equivalent in vs code is "git.stage",
// no default shortcut
// "ctrl-alt-y": "git::ToggleStaged",
"alt-y": "git::StageAndNext",
"shift-alt-y": "git::UnstageAndNext"
}
@ -256,29 +242,18 @@
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewThread",
// todo(windows)
// "ctrl-alt-n": "agent::NewTextThread",
"shift-alt-n": "agent::NewTextThread",
"ctrl-shift-h": "agent::OpenHistory",
// todo(windows)
// "ctrl-alt-c": "agent::OpenSettings",
"shift-alt-c": "agent::OpenSettings",
// todo(windows)
// "ctrl-alt-p": "agent::OpenRulesLibrary",
"shift-alt-p": "agent::OpenRulesLibrary",
"ctrl-i": "agent::ToggleProfileSelector",
// todo(windows)
// "ctrl-alt-/": "agent::ToggleModelSelector",
"shift-alt-/": "agent::ToggleModelSelector",
"ctrl-shift-a": "agent::ToggleContextPicker",
"ctrl-shift-j": "agent::ToggleNavigationMenu",
"ctrl-shift-i": "agent::ToggleOptionsMenu",
// todo(windows)
// "ctrl-shift-alt-n": "agent::ToggleNewThreadMenu",
"shift-alt-escape": "agent::ExpandMessageEditor",
"ctrl-shift-.": "assistant::QuoteSelection",
// todo(windows)
// "ctrl-alt-e": "agent::RemoveAllContext",
"shift-alt-e": "agent::RemoveAllContext",
"ctrl-shift-e": "project_panel::ToggleFocus",
"ctrl-shift-enter": "agent::ContinueThread",
@ -306,9 +281,7 @@
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewTextThread",
// todo(windows)
// "ctrl-alt-t": "agent::NewThread"
"shift-alt-t": "agent::NewThread"
"ctrl-alt-t": "agent::NewThread"
}
},
{
@ -316,9 +289,7 @@
"use_key_equivalents": true,
"bindings": {
"ctrl-n": "agent::NewExternalAgentThread",
// todo(windows)
// "ctrl-alt-t": "agent::NewThread"
"shift-alt-t": "agent::NewThread"
"ctrl-alt-t": "agent::NewThread"
}
},
{
@ -440,11 +411,7 @@
"shift-find": "search::FocusSearch",
"ctrl-shift-f": "search::FocusSearch",
"ctrl-shift-h": "search::ToggleReplace",
// todo(windows)
// "ctrl-alt-g": "search::ToggleRegex",
"alt-r": "search::ToggleRegex" // vscode
// todo(windows)
// "ctrl-alt-x": "search::ToggleRegex"
}
},
{
@ -469,11 +436,7 @@
"bindings": {
"escape": "project_search::ToggleFocus",
"ctrl-shift-h": "search::ToggleReplace",
// todo(windows)
// "ctrl-alt-g": "search::ToggleRegex",
"alt-r": "search::ToggleRegex" // vscode
// todo(windows)
// "ctrl-alt-x": "search::ToggleRegex"
}
},
{
@ -496,59 +459,30 @@
"ctrl-shift-pagedown": "pane::SwapItemRight",
"ctrl-f4": ["pane::CloseActiveItem", { "close_pinned": false }],
"ctrl-w": ["pane::CloseActiveItem", { "close_pinned": false }],
// todo(windows)
// no default for vscode
// "ctrl-alt-t": ["pane::CloseOtherItems", { "close_pinned": false }],
// todo(windows)
// no such action for vscode
// "ctrl-shift-alt-w": "workspace::CloseInactiveTabsAndPanes",
"ctrl-shift-alt-t": ["pane::CloseOtherItems", { "close_pinned": false }],
"ctrl-shift-alt-w": "workspace::CloseInactiveTabsAndPanes",
"ctrl-k e": ["pane::CloseItemsToTheLeft", { "close_pinned": false }],
"ctrl-k t": ["pane::CloseItemsToTheRight", { "close_pinned": false }],
"ctrl-k u": ["pane::CloseCleanItems", { "close_pinned": false }],
"ctrl-k w": ["pane::CloseAllItems", { "close_pinned": false }],
"ctrl-k ctrl-w": "workspace::CloseAllItemsAndPanes",
"back": "pane::GoBack",
// todo(windows)
// vscode: alt-left
// "ctrl-alt--": "pane::GoBack",
"alt--": "pane::GoBack",
// todo(windows)
// vscode: alt-right
// "ctrl-shift-alt--": "pane::GoForward",
"shift-alt--": "pane::GoForward",
"alt-=": "pane::GoForward",
"forward": "pane::GoForward",
// todo(windows)
// vscode: Enter
// "ctrl-alt-g": "search::SelectNextMatch",
"f3": "search::SelectNextMatch",
// todo(windows)
// vscode: shift-enter
// "ctrl-shift-alt-g": "search::SelectPreviousMatch",
"shift-f3": "search::SelectPreviousMatch",
"shift-find": "project_search::ToggleFocus",
"ctrl-shift-f": "project_search::ToggleFocus",
// todo(windows)
// no default shortcut for vscode
// "ctrl-shift-alt-h": "search::ToggleReplace",
"shift-alt-h": "search::ToggleReplace",
// todo(windows)
// vscode: alt-l
// "ctrl-shift-alt-l": "search::ToggleSelection",
"alt-l": "search::ToggleSelection",
"alt-enter": "search::SelectAllMatches",
"alt-c": "search::ToggleCaseSensitive",
"alt-w": "search::ToggleWholeWord",
"alt-find": "project_search::ToggleFilters",
// todo(windows)
// no default for vscode
// "ctrl-alt-f": "project_search::ToggleFilters",
// todo(windows)
// vscode: alt-r
// "ctrl-shift-alt-r": "search::ToggleRegex",
"alt-f": "project_search::ToggleFilters",
"alt-r": "search::ToggleRegex",
// todo(windows)
// "ctrl-shift-alt-x": "search::ToggleRegex",
// "alt-r": "search::ToggleRegex",
"ctrl-k shift-enter": "pane::TogglePinTab"
}
},
@ -612,10 +546,7 @@
"ctrl-k r": "editor::RevealInFileManager",
"ctrl-k p": "editor::CopyPath",
"ctrl-\\": "pane::SplitRight",
// todo(windows)
// vscode?
// "ctrl-shift-alt-c": "editor::DisplayCursorNames",
"shift-alt-c": "editor::DisplayCursorNames",
"ctrl-shift-alt-c": "editor::DisplayCursorNames",
"alt-.": "editor::GoToHunk",
"alt-,": "editor::GoToPreviousHunk"
}
@ -651,25 +582,17 @@
"alt-open": ["projects::OpenRecent", { "create_new_window": false }],
// Change the default action on `menu::Confirm` by setting the parameter
// "ctrl-alt-o": ["projects::OpenRecent", { "create_new_window": true }],
// todo(windows)
// vscode: ctrl-r
// "ctrl-alt-o": ["projects::OpenRecent", { "create_new_window": false }],
"ctrl-r": ["projects::OpenRecent", { "create_new_window": false }],
"shift-alt-open": ["projects::OpenRemote", { "from_existing_connection": false, "create_new_window": false }],
// Change to open path modal for existing remote connection by setting the parameter
// "ctrl-shift-alt-o": "["projects::OpenRemote", { "from_existing_connection": true }]",
// todo(windows)
// "ctrl-shift-alt-o": ["projects::OpenRemote", { "from_existing_connection": false, "create_new_window": false }],
// todo(windows)
// no such for vscode
// "ctrl-shift-alt-b": "branches::OpenRecent",
"ctrl-shift-alt-o": ["projects::OpenRemote", { "from_existing_connection": false, "create_new_window": false }],
"shift-alt-b": "branches::OpenRecent",
"shift-alt-enter": "toast::RunAction",
"ctrl-shift-`": "workspace::NewTerminal",
"save": "workspace::Save",
"ctrl-s": "workspace::Save",
// vscode?
// "ctrl-k s": "workspace::SaveWithoutFormat",
"ctrl-k ctrl-shift-s": "workspace::SaveWithoutFormat",
"shift-save": "workspace::SaveAs",
"ctrl-shift-s": "workspace::SaveAs",
"new": "workspace::NewFile",
@ -687,33 +610,17 @@
"alt-7": ["workspace::ActivatePane", 6],
"alt-8": ["workspace::ActivatePane", 7],
"alt-9": ["workspace::ActivatePane", 8],
// todo(windows)
// this is the default for vscode
"ctrl-alt-b": "workspace::ToggleRightDock",
"ctrl-b": "workspace::ToggleLeftDock",
"ctrl-j": "workspace::ToggleBottomDock",
// todo(windows)
// vscode?
// "ctrl-alt-y": "workspace::CloseAllDocks",
"ctrl-shift-y": "workspace::CloseAllDocks",
// todo(windows)
// vscode?
// "ctrl-alt-0": "workspace::ResetActiveDockSize",
"shift-alt-0": "workspace::ResetActiveDockSize",
"alt-r": "workspace::ResetActiveDockSize",
// For 0px parameter, uses UI font size value.
// todo(windows)
// "ctrl-alt--": ["workspace::DecreaseActiveDockSize", { "px": 0 }],
"shift-alt--": ["workspace::DecreaseActiveDockSize", { "px": 0 }],
// todo(windows)
// "ctrl-alt-=": ["workspace::IncreaseActiveDockSize", { "px": 0 }],
"shift-alt-=": ["workspace::IncreaseActiveDockSize", { "px": 0 }],
// todo(windows)
// "ctrl-shift-alt-0": "workspace::ResetOpenDocksSize",
"ctrl-shift-0": "workspace::ResetOpenDocksSize",
// todo(windows)
// "ctrl-shift-alt--": ["workspace::DecreaseOpenDocksSize", { "px": 0 }],
// todo(windows)
// "ctrl-shift-alt-=": ["workspace::IncreaseOpenDocksSize", { "px": 0 }],
"shift-alt-0": "workspace::ResetOpenDocksSize",
"ctrl-shift-alt--": ["workspace::DecreaseOpenDocksSize", { "px": 0 }],
"ctrl-shift-alt-=": ["workspace::IncreaseOpenDocksSize", { "px": 0 }],
"shift-find": "pane::DeploySearch",
"ctrl-shift-f": "pane::DeploySearch",
"ctrl-shift-h": ["pane::DeploySearch", { "replace_enabled": true }],
@ -735,9 +642,6 @@
"ctrl-shift-d": "debug_panel::ToggleFocus",
"ctrl-shift-/": "agent::ToggleFocus",
"alt-save": "workspace::SaveAll",
// todo(windows)
// vscode: ctrl-k s
// "ctrl-alt-s": "workspace::SaveAll",
"ctrl-k s": "workspace::SaveAll",
"ctrl-k m": "language_selector::Toggle",
"escape": "workspace::Unfollow",
@ -751,9 +655,6 @@
"ctrl-k shift-down": "workspace::SwapPaneDown",
"ctrl-shift-x": "zed::Extensions",
"ctrl-shift-r": "task::Rerun",
// todo(windows)
// no default for vscode
// "ctrl-alt-r": "task::Rerun",
"alt-t": "task::Rerun",
"shift-alt-t": "task::Spawn",
"shift-alt-r": ["task::Spawn", { "reveal_target": "center" }],
@ -798,23 +699,13 @@
"ctrl-shift-u": "editor::RedoSelection",
"ctrl-shift-j": "editor::JoinLines",
"ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart",
// todo(windows)
// deleteWordLeft
// "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart",
"shift-alt-h": "editor::DeleteToPreviousSubwordStart",
"ctrl-alt-delete": "editor::DeleteToNextSubwordEnd",
// todo(windows)
// deleteWordRight
// "ctrl-alt-d": "editor::DeleteToNextSubwordEnd",
"shift-alt-d": "editor::DeleteToNextSubwordEnd",
"ctrl-alt-left": "editor::MoveToPreviousSubwordStart",
"ctrl-alt-right": "editor::MoveToNextSubwordEnd",
"ctrl-shift-alt-left": "editor::SelectToPreviousSubwordStart",
// todo(windows)
// cursorWordLeftSelect
// no default for vscode
// "ctrl-shift-alt-b": "editor::SelectToPreviousSubwordStart",
"ctrl-shift-alt-right": "editor::SelectToNextSubwordEnd"
// todo(windows)
// "ctrl-shift-alt-f": "editor::SelectToNextSubwordEnd"
}
},
// Bindings from Atom
@ -899,11 +790,8 @@
{
"use_key_equivalents": true,
"bindings": {
// todo(windows)
// "ctrl-shift-alt-f": "workspace::FollowNextCollaborator",
"ctrl-shift-alt-f": "workspace::FollowNextCollaborator",
// Only available in debug builds: opens an element inspector for development.
// todo(windows)
// "ctrl-alt-i": "dev::ToggleInspector"
"shift-alt-i": "dev::ToggleInspector"
}
},
@ -934,8 +822,6 @@
"bindings": {
"ctrl-[": "agent::CyclePreviousInlineAssist",
"ctrl-]": "agent::CycleNextInlineAssist",
// todo(windows)
// "ctrl-alt-e": "agent::RemoveAllContext"
"shift-alt-e": "agent::RemoveAllContext"
}
},
@ -960,19 +846,12 @@
"context": "OutlinePanel && not_editing",
"use_key_equivalents": true,
"bindings": {
"escape": "menu::Cancel",
"left": "outline_panel::CollapseSelectedEntry",
"right": "outline_panel::ExpandSelectedEntry",
"alt-copy": "outline_panel::CopyPath",
// todo(windows)
// should be okay?
"ctrl-alt-c": "outline_panel::CopyPath",
"shift-alt-c": "outline_panel::CopyPath",
"shift-alt-copy": "workspace::CopyRelativePath",
// todo(windows)
// should be okay?
"ctrl-shift-alt-c": "workspace::CopyRelativePath",
// todo(windows)
// should be okay?
"ctrl-alt-r": "outline_panel::RevealInFileManager",
"space": "outline_panel::OpenSelectedEntry",
"shift-down": "menu::SelectNext",
@ -990,9 +869,6 @@
"new": "project_panel::NewFile",
"ctrl-n": "project_panel::NewFile",
"alt-new": "project_panel::NewDirectory",
// todo(windows)
// no default for vscode
// "ctrl-alt-n": "project_panel::NewDirectory",
"alt-n": "project_panel::NewDirectory",
"cut": "project_panel::Cut",
"ctrl-x": "project_panel::Cut",
@ -1003,14 +879,8 @@
"shift-insert": "project_panel::Paste",
"ctrl-v": "project_panel::Paste",
"alt-copy": "project_panel::CopyPath",
// todo(windows)
// vscode: shift-alt-c
// "ctrl-alt-c": "project_panel::CopyPath",
"shift-alt-c": "project_panel::CopyPath",
"shift-alt-copy": "workspace::CopyRelativePath",
// todo(windows)
// vscode: ctrl-k ctrl-shift-c
// "ctrl-shift-alt-c": "workspace::CopyRelativePath",
"ctrl-k ctrl-shift-c": "workspace::CopyRelativePath",
"enter": "project_panel::Rename",
"f2": "project_panel::Rename",
@ -1019,16 +889,10 @@
"shift-delete": ["project_panel::Delete", { "skip_prompt": false }],
"ctrl-backspace": ["project_panel::Delete", { "skip_prompt": false }],
"ctrl-delete": ["project_panel::Delete", { "skip_prompt": false }],
// todo(windows)
// vscode: shift-alt-r
// conflict with task::Spawn line 759
// "ctrl-alt-r": "project_panel::RevealInFileManager",
"ctrl-alt-r": "project_panel::RevealInFileManager",
"ctrl-shift-enter": "project_panel::OpenWithSystem",
"alt-d": "project_panel::CompareMarkedFiles",
"shift-find": "project_panel::NewSearchInDirectory",
// todo(windows)
// no default for vscode
// "ctrl-shift-alt-f": "project_panel::NewSearchInDirectory",
"ctrl-k ctrl-shift-f": "project_panel::NewSearchInDirectory",
"shift-down": "menu::SelectNext",
"shift-up": "menu::SelectPrevious",
@ -1051,9 +915,6 @@
"enter": "menu::Confirm",
"alt-y": "git::StageFile",
"shift-alt-y": "git::UnstageFile",
// todo(windows)
// vscode?
// "ctrl-alt-y": "git::ToggleStaged",
"space": "git::ToggleStaged",
"shift-space": "git::StageRange",
"tab": "git_panel::FocusEditor",
@ -1150,9 +1011,7 @@
"right": "variable_list::ExpandSelectedEntry",
"enter": "variable_list::EditVariable",
"ctrl-c": "variable_list::CopyVariableValue",
// todo(windows)
// "ctrl-alt-c": "variable_list::CopyVariableName",
"ctrl-shift-c": "variable_list::CopyVariableName",
"ctrl-alt-c": "variable_list::CopyVariableName",
"delete": "variable_list::RemoveWatch",
"backspace": "variable_list::RemoveWatch",
"alt-enter": "variable_list::AddWatch"
@ -1288,9 +1147,7 @@
"shift-end": "terminal::ScrollToBottom",
"ctrl-shift-space": "terminal::ToggleViMode",
"ctrl-shift-r": "terminal::RerunTask",
// todo(windows)
// no default for vscode
// "ctrl-alt-r": "terminal::RerunTask",
"ctrl-alt-r": "terminal::RerunTask",
"alt-t": "terminal::RerunTask"
}
},
@ -1354,10 +1211,7 @@
"bindings": {
"ctrl-f": "search::FocusSearch",
"alt-find": "keymap_editor::ToggleKeystrokeSearch",
// todo(windows)
// no such action for vscode
// "ctrl-alt-f": "keymap_editor::ToggleKeystrokeSearch",
"ctrl-shift-f": "keymap_editor::ToggleKeystrokeSearch",
"alt-f": "keymap_editor::ToggleKeystrokeSearch",
"alt-c": "keymap_editor::ToggleConflictFilter",
"enter": "keymap_editor::EditBinding",
"alt-enter": "keymap_editor::CreateBinding",