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!
- 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
See our Github Milestone page for an idea of what we plan to implement next.
- Within Visual Studio Code, open the command palette (
Ctrl-Shift-P
/Cmd-Shift-P
) - Select
Install Extension
and search for 'vim' or runext install vim
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
-
Add the following to
settings.json
(open the Command Pallete and search for "User Settings"):"vim.insertModeKeyBindings": [ { "before": ["j", "j"], "after": ["<esc>"] } ]
-
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.