From c69e185a45d8e51fb1fc991d79bb2e590a2fb468 Mon Sep 17 00:00:00 2001 From: Piyush Raj Mishra Date: Mon, 9 Feb 2026 10:58:16 +0530 Subject: [PATCH] feat: add zed vim --- zed/keymap.json | 187 +++++++++ zed/keymap_backup.json | 187 +++++++++ zed/neovim_keybindings.txt | 817 +++++++++++++++++++++++++++++++++++++ zed/settings.json | 50 +++ 4 files changed, 1241 insertions(+) create mode 100644 zed/keymap.json create mode 100644 zed/keymap_backup.json create mode 100644 zed/neovim_keybindings.txt create mode 100644 zed/settings.json diff --git a/zed/keymap.json b/zed/keymap.json new file mode 100644 index 0000000..63e4a75 --- /dev/null +++ b/zed/keymap.json @@ -0,0 +1,187 @@ +// Zed keymap — AstroNvim-style bindings +// +// For information on binding keys, see the Zed +// documentation: https://zed.dev/docs/key-bindings +// +// To see the default key bindings run `zed: open default keymap` +// from the command palette. +[ + // ── Autocomplete / Code Actions menu ── + { + "context": "Editor && (showing_code_actions || showing_completions)", + "bindings": { + "up": "editor::ContextMenuPrevious", + "down": "editor::ContextMenuNext", + "tab": "editor::ContextMenuNext", + "shift-tab": "editor::ContextMenuPrevious" + } + }, + { + "context": "Editor && showing_completions", + "bindings": { + "enter": "editor::ConfirmCompletion" + } + }, + + // ── Normal mode (leader = space) ── + { + "context": "Editor && vim_mode == normal", + "bindings": { + // Tab switching + "ctrl-j": "pane::ActivateNextItem", + "ctrl-k": "pane::ActivatePreviousItem", + + // Buffer / Close (AstroNvim: c, C) + "space c": "pane::CloseActiveItem", + "shift-space c": "pane::CloseActiveItem", + + // Save (AstroNvim: w) + "space w": "workspace::Save", + + // New file (AstroNvim: n) + "space n": "workspace::NewFile", + + // Quit window (AstroNvim: q) + "space q": "pane::CloseActiveItem", + + // ── Find / Search (AstroNvim: f*) ── + "space f f": "file_finder::Toggle", + "space f w": "pane::DeploySearch", + "space f b": "tab_switcher::Toggle", + "space f o": "file_finder::Toggle", + "space f h": "zed::OpenKeymap", + "space f t": "theme_selector::Toggle", + "space f c": "editor::FindAllReferences", + "space f k": "zed::OpenKeymap", + + // ── LSP (AstroNvim: l*) ── + "space l f": "editor::Format", + "space l a": "editor::ToggleCodeActions", + "space l r": "editor::Rename", + "space l d": "editor::Hover", + "space l s": "outline::Toggle", + "space l S": "project_symbols::Toggle", + "space l R": "editor::FindAllReferences", + "space l D": "diagnostics::Deploy", + + // Go-to LSP (AstroNvim: gd, gy, gK) + "g d": "editor::GoToDefinition", + "g y": "editor::GoToTypeDefinition", + "g r": "editor::FindAllReferences", + "g i": "editor::GoToImplementation", + "shift-k": "editor::Hover", + // "g shift-k": signature help — no equivalent in Zed + + // ── Git (AstroNvim: g*) ── + "space g b": "editor::ToggleGitBlame", + "space g d": "editor::ToggleHunkDiff", + // "space g t": git status — no equivalent in Zed + "space g l": "editor::ToggleGitBlameInline", + + // Git hunk navigation (AstroNvim: ]g / [g) + "] g": "editor::GoToHunk", + "[ g": "editor::GoToPreviousHunk", + + // ── Diagnostics navigation (AstroNvim: ]d / [d, ]e / [e) ── + "] d": "editor::GoToDiagnostic", + "[ d": "editor::GoToPreviousDiagnostic", + "] e": "editor::GoToDiagnostic", + "[ e": "editor::GoToPreviousDiagnostic", + + // Hover diagnostics (AstroNvim: gl, ld) + "g l": "editor::Hover", + + // ── Buffers (AstroNvim: b*, ]b, [b) ── + "space b b": "tab_switcher::Toggle", + "space b c": "pane::CloseInactiveItems", + "space b C": "pane::CloseAllItems", + "space b d": "pane::CloseActiveItem", + "] b": "pane::ActivateNextItem", + "[ b": "pane::ActivatePreviousItem", + + // ── Splits (AstroNvim: | and \) ── + "|": "pane::SplitRight", + "\\": "pane::SplitDown", + + // ── Comment (AstroNvim: /) ── + "space /": "editor::ToggleComments", + + // ── Explorer (AstroNvim: e, o) ── + "space e": "workspace::ToggleLeftDock", + "space o": "workspace::ToggleLeftDock", + + // ── Symbols outline (AstroNvim: lS) ── + + // ── Toggle UI (AstroNvim: u*) ── + "space u w": "editor::ToggleSoftWrap", + "space u d": "diagnostics::Deploy", + "space u z": "workspace::ToggleCenteredLayout", + + // ── Debug (AstroNvim: d*) ── + "space d b": "editor::ToggleBreakpoint", + "space d c": "debugger::Continue", + "space d i": "debugger::StepInto", + "space d o": "debugger::StepOver", + "space d shift-o": "debugger::StepOut", + // "space d q": stop debug — no confirmed action name in Zed + "space d r": "debugger::Start", + + // ── Terminal (AstroNvim: tf, th, tv) ── + "space t f": "terminal_panel::ToggleFocus", + + // ── Search / Replace ── + "space s": "pane::DeploySearch", + + // ── Quickfix / Location List (AstroNvim: xq, xl) ── + "space x q": "diagnostics::Deploy", + + // 0 → ^ removed: conflicts with count motions like 20j + // "0": "vim::FirstNonWhitespace" + } + }, + + // ── Visual mode ── + { + "context": "Editor && vim_mode == visual", + "bindings": { + // Comment toggle (AstroNvim: / → gc) + "space /": "editor::ToggleComments", + + // Indent / Unindent (AstroNvim: / ) + "tab": "editor::Indent", + "shift-tab": "editor::Outdent", + + // 0 → ^ removed: conflicts with count motions like 20j + // "0": "vim::FirstNonWhitespace" + } + }, + + // ── Workspace-level bindings ── + { + "context": "Workspace", + "bindings": { + "space e": "workspace::ToggleLeftDock", + + // Tab switching + // (moved to Editor && vim_mode == normal for higher priority) + + // Force write (AstroNvim: ) + "ctrl-s": "workspace::Save", + + // Force quit (AstroNvim: ) + "ctrl-q": "zed::Quit", + + // Toggle terminal (AstroNvim: ) + "ctrl-`": "terminal_panel::ToggleFocus" + } + }, + + // ── Terminal panel ── + { + "context": "Terminal", + "bindings": { + // Back to editor from terminal (AstroNvim: ) + "ctrl-`": "workspace::ToggleBottomDock" + } + } +] diff --git a/zed/keymap_backup.json b/zed/keymap_backup.json new file mode 100644 index 0000000..c9bdba9 --- /dev/null +++ b/zed/keymap_backup.json @@ -0,0 +1,187 @@ +// Zed keymap — AstroNvim-style bindings +// +// For information on binding keys, see the Zed +// documentation: https://zed.dev/docs/key-bindings +// +// To see the default key bindings run `zed: open default keymap` +// from the command palette. +[ + // ── Autocomplete / Code Actions menu ── + { + "context": "Editor && (showing_code_actions || showing_completions)", + "bindings": { + "up": "editor::ContextMenuPrevious", + "down": "editor::ContextMenuNext", + "tab": "editor::ContextMenuNext", + "shift-tab": "editor::ContextMenuPrevious" + } + }, + { + "context": "Editor && showing_completions", + "bindings": { + "enter": "editor::ConfirmCompletion" + } + }, + + // ── Normal mode (leader = space) ── + { + "context": "Editor && vim_mode == normal", + "bindings": { + // Tab switching + "ctrl-j": "pane::ActivateNextItem", + "ctrl-k": "pane::ActivatePrevItem", + + // Buffer / Close (AstroNvim: c, C) + "space c": "pane::CloseActiveItem", + "shift-space c": "pane::CloseActiveItem", + + // Save (AstroNvim: w) + "space w": "workspace::Save", + + // New file (AstroNvim: n) + "space n": "workspace::NewFile", + + // Quit window (AstroNvim: q) + "space q": "pane::CloseActiveItem", + + // ── Find / Search (AstroNvim: f*) ── + "space f f": "file_finder::Toggle", + "space f w": "pane::DeploySearch", + "space f b": "tab_switcher::Toggle", + "space f o": "file_finder::Toggle", + "space f h": "zed::OpenKeymap", + "space f t": "theme_selector::Toggle", + "space f c": "editor::FindAllReferences", + "space f k": "zed::OpenKeymap", + + // ── LSP (AstroNvim: l*) ── + "space l f": "editor::Format", + "space l a": "editor::ToggleCodeActions", + "space l r": "editor::Rename", + "space l d": "editor::Hover", + "space l s": "outline::Toggle", + "space l S": "project_symbols::Toggle", + "space l R": "editor::FindAllReferences", + "space l D": "diagnostics::Deploy", + + // Go-to LSP (AstroNvim: gd, gy, gK) + "g d": "editor::GoToDefinition", + "g y": "editor::GoToTypeDefinition", + "g r": "editor::FindAllReferences", + "g i": "editor::GoToImplementation", + "shift-k": "editor::Hover", + // "g shift-k": signature help — no equivalent in Zed + + // ── Git (AstroNvim: g*) ── + "space g b": "editor::ToggleGitBlame", + "space g d": "editor::ToggleHunkDiff", + // "space g t": git status — no equivalent in Zed + "space g l": "editor::ToggleGitBlameInline", + + // Git hunk navigation (AstroNvim: ]g / [g) + "] g": "editor::GoToHunk", + "[ g": "editor::GoToPrevHunk", + + // ── Diagnostics navigation (AstroNvim: ]d / [d, ]e / [e) ── + "] d": "editor::GoToDiagnostic", + "[ d": "editor::GoToPrevDiagnostic", + "] e": "editor::GoToDiagnostic", + "[ e": "editor::GoToPrevDiagnostic", + + // Hover diagnostics (AstroNvim: gl, ld) + "g l": "editor::Hover", + + // ── Buffers (AstroNvim: b*, ]b, [b) ── + "space b b": "tab_switcher::Toggle", + "space b c": "pane::CloseInactiveItems", + "space b C": "pane::CloseAllItems", + "space b d": "pane::CloseActiveItem", + "] b": "pane::ActivateNextItem", + "[ b": "pane::ActivatePrevItem", + + // ── Splits (AstroNvim: | and \) ── + "|": "pane::SplitRight", + "\\": "pane::SplitDown", + + // ── Comment (AstroNvim: /) ── + "space /": "editor::ToggleComments", + + // ── Explorer (AstroNvim: e, o) ── + "space e": "workspace::ToggleLeftDock", + "space o": "workspace::ToggleLeftDock", + + // ── Symbols outline (AstroNvim: lS) ── + + // ── Toggle UI (AstroNvim: u*) ── + "space u w": "editor::ToggleSoftWrap", + "space u d": "diagnostics::Deploy", + "space u z": "workspace::ToggleCenteredLayout", + + // ── Debug (AstroNvim: d*) ── + "space d b": "editor::ToggleBreakpoint", + "space d c": "debugger::Continue", + "space d i": "debugger::StepInto", + "space d o": "debugger::StepOver", + "space d shift-o": "debugger::StepOut", + // "space d q": stop debug — no confirmed action name in Zed + "space d r": "debugger::Start", + + // ── Terminal (AstroNvim: tf, th, tv) ── + "space t f": "terminal_panel::ToggleFocus", + + // ── Search / Replace ── + "space s": "pane::DeploySearch", + + // ── Quickfix / Location List (AstroNvim: xq, xl) ── + "space x q": "diagnostics::Deploy", + + // 0 → ^ removed: conflicts with count motions like 20j + // "0": "vim::FirstNonWhitespace" + } + }, + + // ── Visual mode ── + { + "context": "Editor && vim_mode == visual", + "bindings": { + // Comment toggle (AstroNvim: / → gc) + "space /": "editor::ToggleComments", + + // Indent / Unindent (AstroNvim: / ) + "tab": "editor::Indent", + "shift-tab": "editor::Outdent", + + // 0 → ^ removed: conflicts with count motions like 20j + // "0": "vim::FirstNonWhitespace" + } + }, + + // ── Workspace-level bindings ── + { + "context": "Workspace", + "bindings": { + "space e": "workspace::ToggleLeftDock", + + // Tab switching + // (moved to Editor && vim_mode == normal for higher priority) + + // Force write (AstroNvim: ) + "ctrl-s": "workspace::Save", + + // Force quit (AstroNvim: ) + "ctrl-q": "zed::Quit", + + // Toggle terminal (AstroNvim: ) + "ctrl-`": "terminal_panel::ToggleFocus" + } + }, + + // ── Terminal panel ── + { + "context": "Terminal", + "bindings": { + // Back to editor from terminal (AstroNvim: ) + "ctrl-`": "workspace::ToggleBottomDock" + } + } +] diff --git a/zed/neovim_keybindings.txt b/zed/neovim_keybindings.txt new file mode 100644 index 0000000..bd754ed --- /dev/null +++ b/zed/neovim_keybindings.txt @@ -0,0 +1,817 @@ + + + +v lf *@ + Format buffer +x la *@ + LSP code action +n lh *@ + Signature help +n la *@ + LSP code action +n lA *@ + LSP source action +n lI *@NullLsInfo + Null-ls information +n lG *@ + Search workspace symbols +n uh *@ + Toggle LSP inlay hints (buffer) +n u? *@ + Toggle automatic signature help +n uY *@ + Toggle LSP semantic highlight (buffer) +n lL *@ + LSP CodeLens run +n ll *@ + LSP CodeLens refresh +n uL *@ + Toggle CodeLens +n lf *@ + Format buffer +n lr *@ + Rename current symbol +n uf *@ + Toggle autoformatting (buffer) +n li *@LspInfo + LSP information +n uF *@ + Toggle autoformatting (global) +n uH *@ + Toggle LSP inlay hints (global) +n lR *@ + Search references +v gs *@ + Stage Git hunk +v gr *@ + Reset Git hunk +n gs *@ + Stage/Unstage Git hunk +n gR *@ + Reset Git buffer +n gr *@ + Reset Git hunk +n gp *@ + Preview Git hunk +n gL *@ + View full Git blame +n gl *@ + View Git blame +n gd *@ + View Git diff +n gS *@ + Stage Git buffer +n + Swap previous block +n + Swap previous argument +n + Swap previous function +n >K *@ + Swap next block +n >A *@ + Swap next argument +n >F *@ + Swap next function +n K *@ + vim.lsp.buf.hover() +n [y *@ + Previous symbol +n [Y *@ + Previous symbol upwards +n [g *@ + Previous Git hunk +n [G *@ + First Git hunk +o [K *@ + Previous block end +x [K *@ + Previous block end +n [K *@ + Previous block end +o [A *@ + Previous argument end +x [A *@ + Previous argument end +n [A *@ + Previous argument end +o [F *@ + Previous function end +x [F *@ + Previous function end +n [F *@ + Previous function end +o [f *@ + Previous function start +x [f *@ + Previous function start +n [f *@ + Previous function start +o [a *@ + Previous argument start +x [a *@ + Previous argument start +n [a *@ + Previous argument start +o [k *@ + Previous block start +x [k *@ + Previous block start +n [k *@ + Previous block start +n ]y *@ + Next symbol +n ]Y *@ + Next symbol upwards +n ]g *@ + Next Git hunk +n ]G *@ + Last Git hunk +o ]K *@ + Next block end +x ]K *@ + Next block end +n ]K *@ + Next block end +o ]F *@ + Next function end +x ]F *@ + Next function end +n ]F *@ + Next function end +o ]A *@ + Next argument end +x ]A *@ + Next argument end +n ]A *@ + Next argument end +o ]a *@ + Next argument start +x ]a *@ + Next argument start +n ]a *@ + Next argument start +o ]k *@ + Next block start +x ]k *@ + Next block start +n ]k *@ + Next block start +o ]f *@ + Next function start +x ]f *@ + Next function start +n ]f *@ + Next function start +x af *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@function.outer','textobjects','x') + around function +o af *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@function.outer','textobjects','o') + around function +x a? *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@conditional.outer','textobjects','x') + around conditional +o a? *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@conditional.outer','textobjects','o') + around conditional +x aa *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@parameter.outer','textobjects','x') + around argument +o aa *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@parameter.outer','textobjects','o') + around argument +x ak *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@block.outer','textobjects','x') + around block +o ak *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@block.outer','textobjects','o') + around block +x ao *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@loop.outer','textobjects','x') + around loop +o ao *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@loop.outer','textobjects','o') + around loop +n gK *@ + Signature help +n gy *@ + Definition of current type +n gd *@ + Show the definition of current symbol +x grm *@ + Shrink selection to previous named node +x grn *@ + Increment selection to named node +n gnn *@ + Start selecting nodes with nvim-treesitter +x grc *@ + Increment selection to surrounding scope +o ig *@:Gitsigns select_hunk + inside Git hunk +x ig *@:Gitsigns select_hunk + inside Git hunk +x if *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@function.inner','textobjects','x') + inside function +o if *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@function.inner','textobjects','o') + inside function +x io *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@loop.inner','textobjects','x') + inside loop +o io *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@loop.inner','textobjects','o') + inside loop +x i? *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@conditional.inner','textobjects','x') + inside conditional +o i? *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@conditional.inner','textobjects','o') + inside conditional +x ia *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@parameter.inner','textobjects','x') + inside argument +o ia *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@parameter.inner','textobjects','o') + inside argument +x ik *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@block.inner','textobjects','x') + inside block +o ik *@lua require'nvim-treesitter.textobjects.select'.select_textobject('@block.inner','textobjects','o') + inside block +n *@ + [copilot] (nes) accept suggestion +n *@ + [copilot] (nes) accept suggestion and go to end +v * >gv + Indent line +n * + Move to below split +n aB * + avante: add all open buffers +n ah * + avante: select history +n a? * + avante: select model +n aR * + avante: display repo map +n as * + avante: toggle suggestion +n aC * + avante: toggle selection +n ad * + avante: toggle debug +n at * + avante: toggle +n af * + avante: focus +n ar * + avante: refresh +n aS * + avante: stop +v ae * + avante: edit +v an * + avante: create new ask +n an * + avante: create new ask +v az * + avante: toggle Zen Mode +n az * + avante: toggle Zen Mode +v aa * + avante: ask +n aa * + avante: ask +v dE * + Evaluate Input +x go * + Git browse (open) +x / gc + Toggle comment +n uc * + Toggle autocompletion (buffer) +n fk * + Find keymaps +n bl * + Close all buffers to the left +n pa * + Update Lazy and Mason +n bp * + Previous buffer +n lS * + Symbols outline +n uw * + Toggle wrap +n br * + Close all buffers to the right +n fl * + Find lines +n dh * + Debugger Hover +n bse * + By extension +n fw * + Find words +n bsr * + By relative path +n du * + Toggle Debugger UI +n bsp * + By full path +n bsi * + By buffer number +n ua * + Toggle autopairs +n fT * TodoFzfLua + Find TODOs +n bsm * + By modification +n ls * + Search symbols +n ld * + Hover diagnostics +n ff * + Find files +n fr * + Find registers +n fo * + Find old files +n fh * + Find help +n fb * + Find buffers +n bb * + Select buffer from tabline +n ft * + Find themes +n f' * + Find marks +n S. * + Load current dirsession +n bd * + Close buffer from tabline +n uz * + Toggle color highlight +n b\ * + Horizontal split buffer from tabline +n fW * + Find words in all files +n b| * + Vertical split buffer from tabline +n h * + Home Screen +n dC * + Conditional Breakpoint (S-F9) +n di * + Step Into (F11) +n ul * + Toggle statusline +n do * + Step Over (F10) +n gb * + Git branches +n bc * + Close all buffers except current +n bC * + Close all buffers +n gC * + Git commits (current file) +n dQ * + Terminate Session (S-F5) +n gt * + Git status +n dp * + Pause (F6) +n dr * + Restart (C-F5) +n f * + Resume previous search +n dR * + Toggle REPL +n ds * + Run To Cursor +n fa * + Find AstroNvim config files +n pm * + Mason Installer +n xq * copen + Quickfix List +n dq * + Close Session +n w * w + Save +n fm * + Find man +n fc * + Find word under cursor +n SD * + Delete a dirsession +n gc * + Git commits (repository) +n u| * + Toggle indent guides +n pM * MasonToolsUpdate + Mason Update +n lD * + Search diagnostics +n th * ToggleTerm size=10 direction=horizontal + ToggleTerm horizontal split +n fu * + Find undo history +n C * + Force close buffer +n fs * + Find buffers/recent/files +n tu * + ToggleTerm gdu +n gg * + ToggleTerm lazygit +n uR * + Toggle reference highlighting (global) +n uC * + Toggle autocompletion (global) +n tf * ToggleTerm direction=float + ToggleTerm float +n uZ * + Toggle zen mode +n tv * ToggleTerm size=80 direction=vertical + ToggleTerm vertical split +n db * + Toggle Breakpoint (F9) +n dB * + Clear Breakpoints +n xl * lopen + Location List +n fF * + Find all files +n dc * + Start/Continue (F5) +n fg * + Find git files +n tp * + ToggleTerm python +n gT * + Git stash +n fn * + Find notifications +n tl * + ToggleTerm lazygit +n uy * + Toggle syntax highlight (buffer) +n fO * + Find old files (cwd) +n go * + Git browse (open) +n ur * + Toggle reference highlighting (buffer) +n fp * + Find projects +n uD * + Dismiss notifications +n Q * confirm qall + Exit AstroNvim +n n * enew + New File +n c * + Close buffer +n dO * + Step Out (S-F11) +n uA * + Toggle rooter autochdir +n Ss * + Save this session +n ub * + Toggle background +n q * confirm q + Quit Window +n SS * + Save this dirsession +n ud * + Toggle diagnostics +n / gcc + Toggle comment line +n pU * + Plugins Update +n ug * + Toggle signcolumn +n pS * + Plugins Sync +n fC * + Find commands +n ps * + Plugins Status +n u> * + Toggle foldcolumn +n uu * + Toggle URL highlight +n ui * + Change indent setting +n us * + Toggle spellcheck +n Sf * + Load a session +n un * + Change line numbering +n SF * + Load a dirsession +n ut * + Toggle tabline +n R * + Rename file +n uv * + Toggle virtual text +n uN * + Toggle Notifications +n Sd * + Delete a session +n up * + Toggle paste mode +n e * Neotree toggle + Toggle Explorer +n tn * + ToggleTerm node +n pu * + Plugins Check Updates +n o * + Toggle Explorer Focus +n uS * + Toggle conceal +n dE * + Evaluate Input +n Sl * + Load last session +n pi * + Plugins Install +n uV * + Toggle virtual lines +n St * + Save this tab's session +n r * + undo history +x # * + :help v_#-default +o % (MatchitOperationForward) +x % (MatchitVisualForward) +n % (MatchitNormalForward) +n & * :&& + :help &-default +x * * + :help v_star-default +v 0 * ^ + goto start of the text +n 00 * 0 + goto start of the line +n 0 * ^ + goto start of the text +n + Move buffer tab left +n >b * + Move buffer tab right +x @ * mode() ==# 'V' ? ':normal! @'.getcharstr().'' : '@' + :help v_@-default +x Q * mode() ==# 'V' ? ':normal! @=reg_recorded()' : 'Q' + :help v_Q-default +n Y * y$ + :help Y-default +o [i * + jump to top edge of scope +x [i * + jump to top edge of scope +n [i * + jump to top edge of scope +o [% (MatchitOperationMultiBackward) +x [% (MatchitVisualMultiBackward) +n [% (MatchitNormalMultiBackward) +n [r * + Previous reference +n [w * + Previous warning +n [e * + Previous error +n [ * + Add empty line above cursor +n [B * + :brewind +n [b * + Previous buffer +n [ * + :ptprevious +n [T * + Previous TODO comment +n [t * + Previous tab +n [A * + :rewind +n [a * + :previous +n [ * + :lpfile +n [L * + :lrewind +n [l * + :lprevious +n [ * + :cpfile +n [Q * + :crewind +n [q * + :cprevious +n [D * + Jump to the first diagnostic in the current buffer +n [d * + Jump to the previous diagnostic in the current buffer +n \ * split + Horizontal Split +o ]i * + jump to bottom edge of scope +x ]i * + jump to bottom edge of scope +n ]i * + jump to bottom edge of scope +o ]% (MatchitOperationMultiForward) +x ]% (MatchitVisualMultiForward) +n ]% (MatchitNormalMultiForward) +n ]w * + Next warning +n ]e * + Next error +n ]r * + Next reference +n ] * + Add empty line below cursor +n ]B * + :blast +n ]b * + Next buffer +n ] * + :ptnext +n ]T * + Next TODO comment +n ]t * + Next tab +n ]A * + :last +n ]a * + :next +n ] * + :lnfile +n ]L * + :llast +n ]l * + :lnext +n ] * + :cnfile +n ]Q * + :clast +n ]q * + :cnext +n ]D * + Jump to the last diagnostic in the current buffer +n ]d * + Jump to the next diagnostic in the current buffer +v ^ * 0 + goto start of the line +n ^ * 0 + goto start of the line +o ai * + full scope +x ai * + full scope +x a% (MatchitVisualTextObject) +o g% (MatchitOperationBackward) +x g% (MatchitVisualBackward) +n g% (MatchitNormalBackward) +n gco * oVcxnormal gccfxa + Add Comment Below +n gcO * OVcxnormal gccfxa + Add Comment Above +n gl * + Hover diagnostics +n gO * + vim.lsp.buf.document_symbol() +n grt * + vim.lsp.buf.type_definition() +n gri * + vim.lsp.buf.implementation() +n grr * + vim.lsp.buf.references() +x gra * + vim.lsp.buf.code_action() +n gra * + vim.lsp.buf.code_action() +n grn * + vim.lsp.buf.rename() +o gc * + Comment textobject +n gcc * + Toggle comment line +x gc * + Toggle comment +n gc * + Toggle comment +x gx * + Opens filepath or URI under cursor with the system handler (file explorer, web browser, …) +n gx * + Opens filepath or URI under cursor with the system handler (file explorer, web browser, …) +o ii * + inner scope +x ii * + inner scope +x j * v:count == 0 ? 'gj' : 'j' + Move cursor down +n j * v:count == 0 ? 'gj' : 'j' + Move cursor down +x k * v:count == 0 ? 'gk' : 'k' + Move cursor up +n k * v:count == 0 ? 'gk' : 'k' + Move cursor up +v p * P + paste without copy +n | * vsplit + Vertical Split +v BlinkCmpDotRepeatHack * +n BlinkCmpDotRepeatHack * +x * +o * +n * + Move to previous reference +n * + Move to next reference +n (AvanteSelectModel) * +n (AvanteConflictPrevConflict) * +n (AvanteConflictNextConflict) * +v (AvanteConflictCursor) * +n (AvanteConflictCursor) * +v (AvanteConflictAllTheirs) * +n (AvanteConflictAllTheirs) * +v (AvanteConflictTheirs) * +n (AvanteConflictTheirs) * +v (AvanteConflictBoth) * +n (AvanteConflictBoth) * +v (AvanteConflictOurs) * +n (AvanteConflictOurs) * +n (AvanteToggleSuggestion) * +n (AvanteToggleSelection) * +n (AvanteToggleDebug) * +n (AvanteToggle) * +n (AvanteBuild) * +n (AvanteFocus) * +n (AvanteRefresh) * +v (AvanteEdit) * +v (AvanteChat) * +n (AvanteChat) * +v (AvanteAskNew) * +n (AvanteAskNew) * +v (AvanteAsk) * +n (AvanteAsk) * +x (MatchitVisualTextObject) (MatchitVisualMultiBackward)o(MatchitVisualMultiForward) +o (MatchitOperationMultiForward) * :call matchit#MultiMatch("W", "o") +o (MatchitOperationMultiBackward) * :call matchit#MultiMatch("bW", "o") +x (MatchitVisualMultiForward) * :call matchit#MultiMatch("W", "n")m'gv`` +x (MatchitVisualMultiBackward) * :call matchit#MultiMatch("bW", "n")m'gv`` +n (MatchitNormalMultiForward) * :call matchit#MultiMatch("W", "n") +n (MatchitNormalMultiBackward) * :call matchit#MultiMatch("bW", "n") +o (MatchitOperationBackward) * :call matchit#Match_wrapper('',0,'o') +o (MatchitOperationForward) * :call matchit#Match_wrapper('',1,'o') +x (MatchitVisualBackward) * :call matchit#Match_wrapper('',0,'v')m'gv`` +x (MatchitVisualForward) * :call matchit#Match_wrapper('',1,'v'):if col("''") != col("$") | exe ":normal! m'" | endifgv`` +n (MatchitNormalBackward) * :call matchit#Match_wrapper('',0,'n') +n (MatchitNormalForward) * :call matchit#Match_wrapper('',1,'n') +n PlenaryTestFile * :lua require('plenary.test_harness').test_file(vim.fn.expand("%:p")) +n * + Next buffer +n * + Previous buffer +n * + Debugger: Step Out +n * + Debugger: Step Into +n * + Run program +n * + Debugger: Toggle Breakpoint +n * + Debugger: Pause +n * + Debugger: Stop +n * + Debugger: Start +n * :ToggleTerm + Toggle terminal +n * execute v:count . "ToggleTerm" + Toggle terminal +n * execute v:count . "ToggleTerm" + Toggle terminal +n * + Resize split up +n * + Debugger: Conditional Breakpoint +n * + Debugger: Restart +n * + Move to above split +n * + Resize split left +n * + Move to left split +n * + Resize split down +n * + Resize split right +n * silent! update! | redraw + Force write +n * q! + Force quit +n d + Show diagnostics under the cursor +n d * + Show diagnostics under the cursor +v * * + vim.lsp.buf.signature_help() +n * + Move to right split diff --git a/zed/settings.json b/zed/settings.json new file mode 100644 index 0000000..ac9537f --- /dev/null +++ b/zed/settings.json @@ -0,0 +1,50 @@ +// Zed settings +// +// For information on how to configure Zed, see the Zed +// documentation: https://zed.dev/docs/configuring-zed +// +// To see all of Zed's default settings without changing your +// custom settings, run `zed: open default settings` from the +// command palette (cmd-shift-p / ctrl-shift-p) +{ + "terminal": { + "shell": { + "program": "zellij", + }, + }, + "outline_panel": { + "dock": "right", + }, + "git_panel": { + "tree_view": false, + "dock": "left", + }, + "vim": { + "cursor_shape": { + "insert": "bar", + }, + "toggle_relative_line_numbers": true, + }, + "ui_font_family": "JetBrainsMono Nerd Font", + "buffer_font_family": "JetBrainsMono Nerd Font", + "icon_theme": "Zed (Default)", + "project_panel": { + "hide_hidden": true, + }, + "agent": { + "default_model": { + "provider": "copilot_chat", + "model": "claude-sonnet-4.5", + }, + "model_parameters": [], + }, + "base_keymap": "VSCode", + "vim_mode": true, + "ui_font_size": 35.0, + "buffer_font_size": 32.0, + "theme": { + "mode": "dark", + "light": "Ayu Light", + "dark": "Catppuccin Mocha", + }, +}