diff --git a/.vscode/README.md b/.vscode/README.md index b74ad63..b6fff5a 100644 --- a/.vscode/README.md +++ b/.vscode/README.md @@ -22,10 +22,10 @@ leader: `` **search** - `ff` → Find files - `fg` → Find in files -- `fb` → Show buffers **splits** - `sv/sh` → Split vertical/horizontal +- `se` → Equalize split sizes - `sx` → Close split - `` → Navigate splits @@ -35,20 +35,25 @@ leader: `` **harpoon-style** - `ha` → Pin editor +- `hh` → Show marked editors - `h1-4` → Jump to editor 1-4 - -**clipboard** -- `y/p` → Copy/paste system clipboard +- `hp/hn` → Previous/next marked editor **lsp** - `gd/gr/gi` → Definition/references/implementation +- `gD` → Declaration - `K` → Hover docs -- `rn` → Rename -- `ca` → Code actions -- `f` → Format - -**comments** -- `/` → Toggle comment +- `rn` → Rename symbol +- `ca` → Code actions +- `D` → Type definition +- `k` → Signature help +- `fo` → Format buffer +- `of` → Show diagnostic float +- `xx` → Problems list + +**file management** +- `rm` → Remove file +- `md` → New folder **git** - `lg` → Source control view diff --git a/.vscode/settings.json b/.vscode/settings.json index 9489e45..a888223 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,13 +14,17 @@ // Normal Mode Keybindings // ═══════════════════════════════════════════════════════════════════════════ "vim.normalModeKeyBindingsNonRecursive": [ - // Basic file operations + // File operations { "before": ["", "w"], "commands": ["workbench.action.files.save"] }, + { + "before": ["", ""], + "commands": ["workbench.action.quickSwitchWindow"] + }, - // File explorer (matching nvim-tree keybinds) + // File explorer { "before": ["", "e", "e"], "commands": ["workbench.view.explorer"] @@ -30,10 +34,10 @@ "commands": ["workbench.files.action.showActiveFileInExplorer"] }, - // Split window management + // Split management { "before": ["", "s", "v"], - "commands": ["workbench.action.splitEditor"] + "commands": ["workbench.action.splitEditorRight"] }, { "before": ["", "s", "h"], @@ -48,7 +52,10 @@ "commands": ["workbench.action.evenEditorWidths"] }, - // Harpoon-style file marking (using VS Code's pinned tabs) + // Git + { "before": ["", "l", "g"], "commands": ["workbench.view.scm"] }, + + // Harpoon-style { "before": ["", "h", "a"], "commands": ["workbench.action.pinEditor"] @@ -82,43 +89,7 @@ "commands": ["workbench.action.nextEditor"] }, - // Tab management - { - "before": ["", "t", "o"], - "commands": ["workbench.action.files.newUntitledFile"] - }, - { - "before": ["", "t", "x"], - "commands": ["workbench.action.closeActiveEditor"] - }, - { - "before": ["", "t", "n"], - "commands": ["workbench.action.nextEditor"] - }, - { - "before": ["", "t", "p"], - "commands": ["workbench.action.previousEditor"] - }, - - // System clipboard - { "before": ["", "p"], "after": ["\"", "*", "p"] }, - { "before": ["", "P"], "after": ["\"", "+", "p"] }, - { "before": ["", "y"], "after": ["\"", "*", "y"] }, - { "before": ["", "Y"], "after": ["\"", "+", "y"] }, - - // Search within file (like / in Neovim) - { "before": ["", "/"], "commands": ["actions.find"] }, - - // Comments (using gc to match Comment.nvim) - { - "before": ["", "g", "c"], - "commands": ["editor.action.commentLine"] - }, - - // Git integration - { "before": ["", "l", "g"], "commands": ["workbench.view.scm"] }, - - // Telescope-style searching + // Finder { "before": ["", "f", "f"], "commands": ["workbench.action.quickOpen"] @@ -127,63 +98,42 @@ "before": ["", "f", "g"], "commands": ["workbench.action.findInFiles"] }, - { - "before": ["", "f", "b"], - "commands": ["workbench.action.showAllEditors"] - }, - { - "before": ["", "f", "h"], - "commands": ["workbench.action.showCommands"] - }, - - // LSP-style navigation - { - "before": ["", "f", "d"], - "commands": ["editor.action.revealDefinition"] - }, - { - "before": ["", "f", "r"], - "commands": ["editor.action.goToReferences"] - }, - { - "before": ["", "f", "i"], - "commands": ["editor.action.goToImplementation"] - }, - { - "before": ["", "f", "s"], - "commands": ["workbench.action.gotoSymbol"] - }, - { - "before": ["", "f", "S"], - "commands": ["workbench.action.showAllSymbols"] - }, - // LSP actions (matching Neovim) + // LSP navigation { "before": ["g", "d"], "commands": ["editor.action.revealDefinition"] }, { "before": ["g", "D"], "commands": ["editor.action.revealDeclaration"] }, { "before": ["g", "i"], "commands": ["editor.action.goToImplementation"] }, { "before": ["g", "r"], "commands": ["editor.action.goToReferences"] }, { "before": ["K"], "commands": ["editor.action.showHover"] }, - // Diagnostics navigation (matching Neovim) + // LSP actions + { "before": ["", "c", "a"], "commands": ["editor.action.codeAction"] }, + { "before": ["", "r", "n"], "commands": ["editor.action.rename"] }, + { "before": ["", "D"], "commands": ["editor.action.goToTypeDefinition"] }, + { "before": ["", "k"], "commands": ["editor.action.triggerParameterHints"] }, + { "before": ["", "o", "f"], "commands": ["editor.action.showHover"] }, + { "before": ["", "f", "o"], "commands": ["editor.action.formatDocument"] }, + { "before": ["", "x", "x"], "commands": ["workbench.actions.view.problems"] }, + + // Tab management { - "before": ["", "e"], - "commands": ["editor.action.showHover"] + "before": ["", "t", "o"], + "commands": ["workbench.action.files.newUntitledFile"] }, { - "before": ["[", "d"], - "commands": ["editor.action.marker.prevInFiles"] + "before": ["", "t", "x"], + "commands": ["workbench.action.closeActiveEditor"] }, { - "before": ["]", "d"], - "commands": ["editor.action.marker.nextInFiles"] + "before": ["", "t", "n"], + "commands": ["workbench.action.nextEditor"] }, { - "before": ["", "q"], - "commands": ["workbench.actions.view.problems"] + "before": ["", "t", "p"], + "commands": ["workbench.action.previousEditor"] }, - // Terminal integration + // Terminal { "before": [""], "commands": ["workbench.action.terminal.toggleTerminal"] @@ -193,64 +143,26 @@ "commands": ["workbench.action.terminal.toggleTerminal"] }, - // Which-key style helper - { - "before": ["", "?"], - "commands": ["workbench.action.showCommands"] - }, - - // Improved Harpoon-style navigation - { - "before": ["", "h", "x"], - "commands": ["workbench.action.unpinEditor"] - }, - - // Additional LSP features - { - "before": ["", "D"], - "commands": ["editor.action.goToTypeDefinition"] - }, - { - "before": [""], - "commands": ["editor.action.triggerParameterHints"] - }, - - // Workspace management - { - "before": ["", "w", "a"], - "commands": ["workbench.action.addRootFolder"] - }, - - // Additional split window resize bindings - { - "before": ["", "+"], - "commands": ["workbench.action.increaseViewHeight"] - }, - { - "before": ["", "-"], - "commands": ["workbench.action.decreaseViewHeight"] - }, - { - "before": ["", ">"], - "commands": ["workbench.action.increaseViewWidth"] - }, - { - "before": ["", "<"], - "commands": ["workbench.action.decreaseViewWidth"] - }, - - // vim-eunuch style file operations + // File management { "before": ["", "r", "m"], "commands": ["fileutils.removeFile"] }, - { - "before": ["", "r", "n"], - "commands": ["fileutils.renameFile"] - }, { "before": ["", "m", "d"], "commands": ["fileutils.newFolder"] + }, + + // Window navigation + { "before": [""], "commands": ["workbench.action.focusLeftGroup"] }, + { "before": [""], "commands": ["workbench.action.focusRightGroup"] }, + { "before": [""], "commands": ["workbench.action.focusBelowGroup"] }, + { "before": [""], "commands": ["workbench.action.focusAboveGroup"] }, + + // Which-key helper + { + "before": ["", "?"], + "commands": ["workbench.action.showCommands"] } ], @@ -258,23 +170,7 @@ // Visual Mode Keybindings // ═══════════════════════════════════════════════════════════════════════════ "vim.visualModeKeyBindingsNonRecursive": [ - // System clipboard - { "before": ["", "p"], "after": ["\"", "*", "p"] }, - { "before": ["", "P"], "after": ["\"", "+", "p"] }, - { "before": ["", "y"], "after": ["\"", "*", "y"] }, - { "before": ["", "Y"], "after": ["\"", "+", "y"] }, - - // Comments (using gc to match Comment.nvim) - { - "before": ["", "g", "c"], - "commands": ["editor.action.commentLine"] - }, - - // Formatting - { - "before": ["", "f"], - "commands": ["editor.action.formatSelection"] - } + { "before": ["p"], "after": ["\"", "_", "d", "P"] } ], // ═══════════════════════════════════════════════════════════════════════════