Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions .vscode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ leader: `<space>`
**search**
- `<leader>ff` → Find files
- `<leader>fg` → Find in files
- `<leader>fb` → Show buffers

**splits**
- `<leader>sv/sh` → Split vertical/horizontal
- `<leader>se` → Equalize split sizes
- `<leader>sx` → Close split
- `<C-h/j/k/l>` → Navigate splits

Expand All @@ -35,20 +35,25 @@ leader: `<space>`

**harpoon-style**
- `<leader>ha` → Pin editor
- `<leader>hh` → Show marked editors
- `<leader>h1-4` → Jump to editor 1-4

**clipboard**
- `<leader>y/p` → Copy/paste system clipboard
- `<leader>hp/hn` → Previous/next marked editor

**lsp**
- `gd/gr/gi` → Definition/references/implementation
- `gD` → Declaration
- `K` → Hover docs
- `<space>rn` → Rename
- `<space>ca` → Code actions
- `<space>f` → Format

**comments**
- `<leader>/` → Toggle comment
- `<leader>rn` → Rename symbol
- `<leader>ca` → Code actions
- `<leader>D` → Type definition
- `<leader>k` → Signature help
- `<leader>fo` → Format buffer
- `<leader>of` → Show diagnostic float
- `<leader>xx` → Problems list

**file management**
- `<leader>rm` → Remove file
- `<leader>md` → New folder

**git**
- `<leader>lg` → Source control view
Expand Down
198 changes: 47 additions & 151 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@
// Normal Mode Keybindings
// ═══════════════════════════════════════════════════════════════════════════
"vim.normalModeKeyBindingsNonRecursive": [
// Basic file operations
// File operations
{
"before": ["<leader>", "w"],
"commands": ["workbench.action.files.save"]
},
{
"before": ["<leader>", "<leader>"],
"commands": ["workbench.action.quickSwitchWindow"]
},

// File explorer (matching nvim-tree keybinds)
// File explorer
{
"before": ["<leader>", "e", "e"],
"commands": ["workbench.view.explorer"]
Expand All @@ -30,10 +34,10 @@
"commands": ["workbench.files.action.showActiveFileInExplorer"]
},

// Split window management
// Split management
{
"before": ["<leader>", "s", "v"],
"commands": ["workbench.action.splitEditor"]
"commands": ["workbench.action.splitEditorRight"]
},
{
"before": ["<leader>", "s", "h"],
Expand All @@ -48,7 +52,10 @@
"commands": ["workbench.action.evenEditorWidths"]
},

// Harpoon-style file marking (using VS Code's pinned tabs)
// Git
{ "before": ["<leader>", "l", "g"], "commands": ["workbench.view.scm"] },

// Harpoon-style
{
"before": ["<leader>", "h", "a"],
"commands": ["workbench.action.pinEditor"]
Expand Down Expand Up @@ -82,43 +89,7 @@
"commands": ["workbench.action.nextEditor"]
},

// Tab management
{
"before": ["<leader>", "t", "o"],
"commands": ["workbench.action.files.newUntitledFile"]
},
{
"before": ["<leader>", "t", "x"],
"commands": ["workbench.action.closeActiveEditor"]
},
{
"before": ["<leader>", "t", "n"],
"commands": ["workbench.action.nextEditor"]
},
{
"before": ["<leader>", "t", "p"],
"commands": ["workbench.action.previousEditor"]
},

// System clipboard
{ "before": ["<leader>", "p"], "after": ["\"", "*", "p"] },
{ "before": ["<leader>", "P"], "after": ["\"", "+", "p"] },
{ "before": ["<leader>", "y"], "after": ["\"", "*", "y"] },
{ "before": ["<leader>", "Y"], "after": ["\"", "+", "y"] },

// Search within file (like <leader>/ in Neovim)
{ "before": ["<leader>", "/"], "commands": ["actions.find"] },

// Comments (using <leader>gc to match Comment.nvim)
{
"before": ["<leader>", "g", "c"],
"commands": ["editor.action.commentLine"]
},

// Git integration
{ "before": ["<leader>", "l", "g"], "commands": ["workbench.view.scm"] },

// Telescope-style searching
// Finder
{
"before": ["<leader>", "f", "f"],
"commands": ["workbench.action.quickOpen"]
Expand All @@ -127,63 +98,42 @@
"before": ["<leader>", "f", "g"],
"commands": ["workbench.action.findInFiles"]
},
{
"before": ["<leader>", "f", "b"],
"commands": ["workbench.action.showAllEditors"]
},
{
"before": ["<leader>", "f", "h"],
"commands": ["workbench.action.showCommands"]
},

// LSP-style navigation
{
"before": ["<leader>", "f", "d"],
"commands": ["editor.action.revealDefinition"]
},
{
"before": ["<leader>", "f", "r"],
"commands": ["editor.action.goToReferences"]
},
{
"before": ["<leader>", "f", "i"],
"commands": ["editor.action.goToImplementation"]
},
{
"before": ["<leader>", "f", "s"],
"commands": ["workbench.action.gotoSymbol"]
},
{
"before": ["<leader>", "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": ["<leader>", "c", "a"], "commands": ["editor.action.codeAction"] },
{ "before": ["<leader>", "r", "n"], "commands": ["editor.action.rename"] },
{ "before": ["<leader>", "D"], "commands": ["editor.action.goToTypeDefinition"] },
{ "before": ["<leader>", "k"], "commands": ["editor.action.triggerParameterHints"] },
{ "before": ["<leader>", "o", "f"], "commands": ["editor.action.showHover"] },
{ "before": ["<leader>", "f", "o"], "commands": ["editor.action.formatDocument"] },
{ "before": ["<leader>", "x", "x"], "commands": ["workbench.actions.view.problems"] },

// Tab management
{
"before": ["<space>", "e"],
"commands": ["editor.action.showHover"]
"before": ["<leader>", "t", "o"],
"commands": ["workbench.action.files.newUntitledFile"]
},
{
"before": ["[", "d"],
"commands": ["editor.action.marker.prevInFiles"]
"before": ["<leader>", "t", "x"],
"commands": ["workbench.action.closeActiveEditor"]
},
{
"before": ["]", "d"],
"commands": ["editor.action.marker.nextInFiles"]
"before": ["<leader>", "t", "n"],
"commands": ["workbench.action.nextEditor"]
},
{
"before": ["<space>", "q"],
"commands": ["workbench.actions.view.problems"]
"before": ["<leader>", "t", "p"],
"commands": ["workbench.action.previousEditor"]
},

// Terminal integration
// Terminal
{
"before": ["<C-\\>"],
"commands": ["workbench.action.terminal.toggleTerminal"]
Expand All @@ -193,88 +143,34 @@
"commands": ["workbench.action.terminal.toggleTerminal"]
},

// Which-key style helper
{
"before": ["<leader>", "?"],
"commands": ["workbench.action.showCommands"]
},

// Improved Harpoon-style navigation
{
"before": ["<leader>", "h", "x"],
"commands": ["workbench.action.unpinEditor"]
},

// Additional LSP features
{
"before": ["<space>", "D"],
"commands": ["editor.action.goToTypeDefinition"]
},
{
"before": ["<C-k>"],
"commands": ["editor.action.triggerParameterHints"]
},

// Workspace management
{
"before": ["<space>", "w", "a"],
"commands": ["workbench.action.addRootFolder"]
},

// Additional split window resize bindings
{
"before": ["<leader>", "+"],
"commands": ["workbench.action.increaseViewHeight"]
},
{
"before": ["<leader>", "-"],
"commands": ["workbench.action.decreaseViewHeight"]
},
{
"before": ["<leader>", ">"],
"commands": ["workbench.action.increaseViewWidth"]
},
{
"before": ["<leader>", "<"],
"commands": ["workbench.action.decreaseViewWidth"]
},

// vim-eunuch style file operations
// File management
{
"before": ["<leader>", "r", "m"],
"commands": ["fileutils.removeFile"]
},
{
"before": ["<leader>", "r", "n"],
"commands": ["fileutils.renameFile"]
},
{
"before": ["<leader>", "m", "d"],
"commands": ["fileutils.newFolder"]
},

// Window navigation
{ "before": ["<C-h>"], "commands": ["workbench.action.focusLeftGroup"] },
{ "before": ["<C-l>"], "commands": ["workbench.action.focusRightGroup"] },
{ "before": ["<C-j>"], "commands": ["workbench.action.focusBelowGroup"] },
{ "before": ["<C-k>"], "commands": ["workbench.action.focusAboveGroup"] },

// Which-key helper
{
"before": ["<leader>", "?"],
"commands": ["workbench.action.showCommands"]
}
],

// ═══════════════════════════════════════════════════════════════════════════
// Visual Mode Keybindings
// ═══════════════════════════════════════════════════════════════════════════
"vim.visualModeKeyBindingsNonRecursive": [
// System clipboard
{ "before": ["<leader>", "p"], "after": ["\"", "*", "p"] },
{ "before": ["<leader>", "P"], "after": ["\"", "+", "p"] },
{ "before": ["<leader>", "y"], "after": ["\"", "*", "y"] },
{ "before": ["<leader>", "Y"], "after": ["\"", "+", "y"] },

// Comments (using <leader>gc to match Comment.nvim)
{
"before": ["<leader>", "g", "c"],
"commands": ["editor.action.commentLine"]
},

// Formatting
{
"before": ["<space>", "f"],
"commands": ["editor.action.formatSelection"]
}
{ "before": ["p"], "after": ["\"", "_", "d", "P"] }
],

// ═══════════════════════════════════════════════════════════════════════════
Expand Down