Skip to content

Instantly share code, notes, and snippets.

@baldwindavid
Last active March 18, 2025 21:48
Show Gist options
  • Save baldwindavid/da067ef4a39ef09550e56a97bba22f8f to your computer and use it in GitHub Desktop.
Save baldwindavid/da067ef4a39ef09550e56a97bba22f8f to your computer and use it in GitHub Desktop.
[
////////////////////////////////////////////
// All Contexts
////////////////////////////////////////////
{
"bindings": {
// Open Project
"cmd-shift-p": "projects::OpenRecent",
// Left Dock
"cmd-[": "workspace::ToggleLeftDock",
"cmd-e": "project_panel::ToggleFocus",
"cmd-o": "outline_panel::ToggleFocus",
"cmd-g g": "git_panel::ToggleFocus",
// Right Dock
"cmd-]": "workspace::ToggleRightDock",
"cmd-'": "assistant::ToggleFocus",
// Bottom Dock
"cmd-b": "workspace::ToggleBottomDock",
"cmd-.": "terminal_panel::ToggleFocus",
// Search Files, Symbols, and Full-Text
"cmd-p": "file_finder::Toggle",
"cmd-y": "project_symbols::Toggle",
"cmd-f": "workspace::NewSearch",
"cmd-t": "workspace::NewCenterTerminal",
"cmd-;": "command_palette::Toggle",
"cmd-i": "tab_switcher::Toggle",
// Settings
"cmd-, t": ["task::Spawn", { "task_name": "toggle_theme" }],
"cmd-, ,": ["task::Spawn", { "task_name": "open_config_repo" }],
// Git (WIP)
"cmd-g a": "git::StageAll",
"cmd-g b": "git::Branch",
"cmd-g m": ["task::Spawn", { "task_name": "sublime_merge" }],
// Zoom Pane
"cmd-m": "workspace::ToggleZoom",
// Pane Navigation
"cmd-k": "workspace::ActivatePaneUp",
"cmd-j": "workspace::ActivatePaneDown",
"cmd-h": "workspace::ActivatePaneLeft",
"cmd-l": "workspace::ActivatePaneRight",
// Splitting Panes
"cmd-r": "pane::SplitRight",
"cmd-d": "pane::SplitDown",
// Move to tab left/right
"cmd-alt-l": "pane::ActivateNextItem",
"cmd-alt-h": "pane::ActivatePreviousItem",
"cmd-\\": "pane::JoinAll",
"cmd-|": "workspace::CloseInactiveTabsAndPanes"
}
},
{
"context": "EmptyPane",
"bindings": {
// Yazi
"-": [
"task::Spawn",
{ "task_name": "file_explorer", "reveal_target": "center" }
]
}
},
////////////////////////////////////////////
// Normal & Visual Mode
////////////////////////////////////////////
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"cmd-enter": "assistant::InlineAssist",
"enter": "workspace::Save",
"g e": "editor::OpenExcerpts",
"g E": "editor::OpenExcerptsSplit",
"g a": "search::SelectAllMatches",
"g D": "editor::GoToDefinitionSplit",
"g r": "editor::FindAllReferences",
"space e": "workspace::Open",
"g o": "editor::OpenUrl",
"space v": "vim::ToggleVisualBlock",
"space n": "workspace::ClearAllNotifications",
"space =": "editor::SortLinesCaseInsensitive",
"space t": ["task::Spawn", { "task_name": "test_under_cursor" }],
"space shift-t": ["task::Spawn", { "task_name": "test_file" }],
"space space t": "task::Rerun",
"space i": "editor::ToggleIndentGuides",
"space s": "task::Spawn",
"space j": "vim::Decrement",
"space k": "vim::Increment",
// Yazi
"-": [
"task::Spawn",
{ "task_name": "file_navigation", "reveal_target": "center" }
],
"up": "vim::ScrollUp",
"down": "vim::ScrollDown",
"left": "pane::GoBack",
"right": "pane::GoForward",
"space g l": "git::Blame",
"space g o": "editor::OpenPermalinkToLine",
"space g d": "editor::ExpandAllDiffHunks",
"space g s": "git::ToggleStaged",
"space g r": "git::Restore",
"space g c": "git::Commit",
"g j": "vim::NextMethodStart",
"g k": "vim::PreviousMethodStart",
"space a": "editor::NewlineAbove",
"space b": "editor::NewlineBelow",
"shift-u": "editor::Redo",
"space o": "outline::Toggle"
}
},
////////////////////////////////////////////
// Visual, Visual Line & Visual Block Modes
////////////////////////////////////////////
{
"context": "Editor && vim_mode == visual && !VimWaiting && !menu",
"bindings": {
"v": "editor::SelectLargerSyntaxNode",
"V": "editor::SelectSmallerSyntaxNode"
}
},
{
"context": "vim_mode == visual",
"bindings": {
"shift-s": ["vim::PushAddSurrounds", {}]
}
},
////////////////////////////////////////////
// Terminal
////////////////////////////////////////////
{
"context": "Terminal",
"bindings": {
"cmd-escape": "terminal::ToggleViMode",
"cmd-enter": "assistant::InlineAssist"
}
},
{
"context": "Dock > Pane > Terminal",
"bindings": {
"cmd-t": "workspace::NewTerminal"
}
},
////////////////////////////////////////////
// TabSwitcher
////////////////////////////////////////////
{
"context": "TabSwitcher",
"bindings": {
"cmd-shift-i": "menu::SelectPrevious",
"cmd-backspace": "tab_switcher::CloseSelectedItem"
}
},
////////////////////////////////////////////
// Completions
////////////////////////////////////////////
{
"context": "Editor && showing_completions",
"bindings": {
"enter": "editor::Newline"
}
},
{
"context": "Editor && edit_prediction_conflict",
"bindings": {
"tab": "editor::AcceptEditPrediction",
"right": "editor::ComposeCompletion"
}
},
////////////////////////////////////////////
// Git (WIP)
////////////////////////////////////////////
{
"context": "GitPanel && ChangesList",
"bindings": {
"enter": "git::Diff",
"j": ["workspace::SendKeystrokes", "j g f"],
"k": ["workspace::SendKeystrokes", "k g f"],
"g g": ["workspace::SendKeystrokes", "g g g f"],
"shift-g": ["workspace::SendKeystrokes", "shift-g g f"]
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment