/Vim

Vim for Visual Studio Code

Primary LanguageTypeScriptMIT LicenseMIT

Build Status Slack Status

Vim

VSCodeVim is a Visual Studio Code extension that provides Vim keybindings within Visual Studio Code.

Please report missing or buggy features on GitHub.

We've added a lot of functionality, but everyone uses Vim in their own special way, so let us know if we're missing your favorite obscure command. 😉

We're super friendly people if you want to drop by and talk to us on our Slack channel!

Screenshot

Features We Support

  • All basic modes
  • Most typical commands, including command combinations like c3w, daw, 2dd, etc. (Check the roadmap for details.)
  • Command remapping (jj to esc)
  • Repeating actions with .
  • Incremental search with / and ? that works like Vim (doesn't just open the search box!)
  • Correct undo/redo state
  • Marks

Roadmap

See our Github Milestone page for an idea of what we plan to implement next.

Install

  1. Within Visual Studio Code, open the command palette (Ctrl-Shift-P / Cmd-Shift-P)
  2. Select Install Extension and search for 'vim' or run ext install vim

F.A.Q.

j, k and others don't repeat when I hold them down.

On OSX, the fix is to run this in the terminal. Be mindful as this is a global setting:

defaults write -g ApplePressAndHoldEnabled -bool false

How can I bind jj to <esc>?

  1. Add the following to settings.json (open the Command Pallete and search for "User Settings"):

       "vim.insertModeKeyBindings": [
            {
                "before": ["j", "j"],
                "after": ["<esc>"]
            }
       ]
    
  2. If you want to press jj in modes which are not Insert Mode and still have it trigger <esc>, do the following as well:

       "vim.otherModesKeyBindings": [
            {
                "before": ["j", "j"],
                "after": ["<esc>"]
            }
       ]
    

Be sure to restart VSCode after making these changes.

#### How can I enable `ctrl-c` as an alternative to `<esc>`?

Put the following in your `settings.json`:

```    "vim.useCtrlKeys": true```

and restart VSCode.

## Contributing

This project is maintained by a group of awesome [contributors](https://github.com/VSCodeVim/Vim/graphs/contributors) and contributions are extremely welcome :heart:. If you are having trouble thinking of how you can help, check out our [roadmap](ROADMAP.md).

For a quick tutorial on how to get started, see our [contributing guide](/.github/CONTRIBUTING.md).

## License

MIT, please see [License](LICENSE) for more information.