VSCodeVim

repository·master·Indexed 12 days ago

https://github.com/vscodevim/vim

Vim emulation for Visual Studio Code providing Vim-like keybindings, modes, and plugin emulation. Version 1.32.4 includes support for Neovim integration, .vimrc files, and emulations of popular plugins such as vim-easymotion, vim-surround, and vim-commentary.

Tokens
30K
Snippets
126
Records
204
Agent score
97%

What's inside VSCodeVim

  1. Identify available Vim modes for 'when' clauses

    master

    When writing custom keybindings in keybindings.json, you can use the vim.mode context key to target specific modes.

    Available mode strings:

    • Normal
    • Insert
    • Visual
    • VisualBlock
    • VisualLine
    • SearchInProgressMode
    • CommandlineInProgress
    • Replace
    • EasyMotionMode
    • EasyMotionInputMode
    • SurroundInputMode
    • OperatorPendingMode
    • Disabled
    // Example: Apply a binding only in Normal or Visual mode
    "when": "vim.mode == 'Normal' || vim.mode == 'Visual'"
  2. Configure control key behavior on Windows

    master
    On Windows, VSCodeVim will take over your control keys by default. You can adjust this behavior using the useCtrlKeys and handleKeys settings in your VS Code configuration.
  3. Neovim integration: Command execution and error reporting

    master

    In versions v0.15.5 and v0.15.7, improvements were made to Neovim integration:

    • Neovim command execution status is reported in the status bar (v0.15.7).
    • Improved error reporting when using the Neovim command line (v0.15.5).
  4. Use VS Code's config folder for .cmdline_history

    master
    Starting from version v0.15.7, VSCodeVim uses the standard VS Code configuration folder to store .cmdline_history. This ensures that command-line history is managed within the VS Code environment. Additionally, command-line history is moved to XDG_CACHE_HOME or %APPDATA% to follow platform-specific standards.