Skip to content

πŸš€ LazyVim-inspired Vim configuration for VS Code | 50+ keybindings | Full LSP & Git integration | Works with VS Code, Cursor & AntiGravity

Notifications You must be signed in to change notification settings

wojukasz/VimCode

Repository files navigation

VimCode - LazyVim-Style Configuration for VS Code

Bring the power and efficiency of LazyVim to VS Code with 50+ carefully crafted keybindings.

This is very much a work in progress, and I plan to refine this configuration and fix it as I go on. Coming from a Vim background, I have no desire to learn VS Code shortcuts and instead plan to use Vim functionality within VS Code. The core principle is to rely on native Vim shortcuts/commands first, make them work in VS Code as much as possible, log any odd behaviour, and fix anything that feels off. Please feel free to contribute and share ideas!

Version License GitHub stars GitHub forks GitHub last commit GitHub issues

A comprehensive Vim configuration for VS Code that mirrors the LazyVim experience with <space> as the leader key. Perfect for developers who want Neovim muscle memory in VS Code with full LSP integration, Git operations, and modern editor features. Compatible with VSCodeVim, Cursor, and Windsurf editors.

Features

  • 50+ LazyVim-aligned keybindings - Organized by prefix (<leader>f*, <leader>s*, <leader>c*, etc.)
  • Full Vim emulation - Modal editing with proper mode indicators
  • LSP integration - Code navigation, formatting, refactoring
  • Git operations - Integrated with GitLens for blame, history, diff
  • Window management - Ctrl+h/j/k/l split navigation
  • Performance optimized - Dedicated thread prevents typing lag
  • Multi-editor support - Works with VS Code, Cursor, and Antigravity (Windsurf)

Quick Start

1. Install Required Extension

code --install-extension vscodevim.vim

2. Install Recommended Extensions

code --install-extension eamodio.gitlens
code --install-extension hoovercj.vscode-settings-cycler

3. Apply Configuration

Copy configuration files to your VS Code user directory:

macOS:

cp config/settings.json ~/Library/Application\ Support/Code/User/
cp config/keybindings.json ~/Library/Application\ Support/Code/User/

Linux:

cp config/settings.json ~/.config/Code/User/
cp config/keybindings.json ~/.config/Code/User/

Windows (PowerShell):

Copy-Item config\settings.json $env:APPDATA\Code\User\
Copy-Item config\keybindings.json $env:APPDATA\Code\User\

4. Restart VS Code

That's it! See SETUP.md for detailed installation instructions and troubleshooting.

Essential Keybindings

Keybinding Action Category
<leader>ff Find files File
<leader>/ Search in workspace Search
<leader>e Toggle sidebar File
<leader>ca Code action LSP
gd Go to definition LSP
Shift+H/L Previous/next buffer Buffer
Ctrl+h/j/k/l Navigate splits Window
<leader>gg Git status Git
[d / ]d Previous/next diagnostic Diagnostic

Leader key: <space>

See KEYBINDINGS.md for complete shortcuts reference.

Documentation

Configuration Structure

VimCode/
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ settings.json      # VS Code settings + all <leader> bindings
β”‚   └── keybindings.json   # Modifier keys (Ctrl/Alt/Shift) bindings
β”œβ”€β”€ SETUP.md               # Installation and configuration guide
β”œβ”€β”€ KEYBINDINGS.md         # Shortcuts reference and cheat sheet
β”œβ”€β”€ TIPS_AND_TRICKS.md     # Power user guide
└── TROUBLESHOOTING.md     # Common issues and solutions

Keybinding Organization

VimCode uses the LazyVim convention of organizing keybindings by prefix:

  • <leader>f* - File operations (find, recent, new, buffer list)
  • <leader>s* - Search operations (grep, workspace symbols, replace)
  • <leader>c* - Code actions (format, rename, quick fix)
  • <leader>b* - Buffer management (close, switch, pin/unpin)
  • <leader>g* - Git operations (blame, status, history, diff)
  • <leader>w* - Window management (split, close, maximize)
  • <leader>x* - Diagnostics (problems panel, navigation)
  • <leader>u* - UI toggles (word wrap, zen mode, line numbers)

Supported Editors

  • VS Code - Full support (primary target)
  • Cursor - Compatible (AI-powered editor)
  • Antigravity (Windsurf) - Compatible (VS Code fork)

See EDITOR_COMPARISON.md for details on multi-editor support.

Philosophy

VimCode follows these principles:

  1. Consistency - Same keybindings between Neovim and VS Code
  2. Discoverability - Organized by prefix for easy learning
  3. Efficiency - Common operations accessible with minimal keystrokes
  4. Integration - Work with VS Code's native features, not against them
  5. Performance - Optimized configuration for responsive editing

Validation Checklist

After installation, test these essential bindings:

  • Space in Normal mode doesn't move cursor
  • <leader>ff (Space, f, f) opens file picker
  • <leader>/ (Space, /) opens workspace search
  • gd jumps to definition
  • Shift+H / Shift+L switches buffers
  • Ctrl+h/j/k/l navigates between splits

See SETUP.md for complete validation checklist.

Why VimCode?

If you love Vim but need the power of VS Code's ecosystem, VimCode gives you the best of both worlds:

  • Familiar muscle memory from LazyVim
  • Modern LSP features with VS Code's IntelliSense
  • Rich extension ecosystem (GitLens, debuggers, formatters)
  • Visual feedback with status bar mode indicators
  • Cross-platform works on macOS, Linux, and Windows

Contributing

Contributions are welcome! Found a bug or have a suggestion? Feel free to open an issue or submit a pull request.

For major changes, please open an issue first to discuss what you would like to change. See .github/CONTRIBUTING.md for detailed contribution guidelines.

Note

Some keybindings are experimental and may require adjustments based on your workflow. Feel free to customize the configuration files to suit your needs.

License

MIT


Get Started: SETUP.md | Quick Reference: KEYBINDINGS.md | Learn More: TIPS_AND_TRICKS.md

About

πŸš€ LazyVim-inspired Vim configuration for VS Code | 50+ keybindings | Full LSP & Git integration | Works with VS Code, Cursor & AntiGravity

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •