Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use vim (key-bindings) with Visual Studio Code vim extension

I just started using Visual Studio Code and think it's really great. Also installed the vim extension, but I'm struggling with mapping esc to a another key.

Normally I have this:

:imap jj <Esc> 

And I can see that VS Code has a keybindings.json file. I tried this:

[{     "key": "jj",     "command": "vim.Esc",     "when": "editorTextFocus" }] 

Also there is a settings.json file, so I tried:

{   "vim.keyboardLayout": "en-US (QWERTY)",     "vim.insertModeKeyBindings": {         "j": "vim.Esc"     } } 

Also did not work. So does anyone know how to use the a vim extension with VS Code where I can map jj to Esc or something else to Esc perhaps?

like image 292
ganjan Avatar asked Jun 12 '16 17:06

ganjan


People also ask

Can I use Vim in VS Code?

VSCodeVim is a Vim emulator for Visual Studio Code. 🚚 For a full list of supported Vim features, please refer to our roadmap. 📃 Our change log outlines the breaking/major/minor updates between releases. Report missing features/bugs on GitHub.

How do I change the key bindings in VS Code?

All keyboard shortcuts in VS Code can be customized via the keybindings. json file. To configure keyboard shortcuts through the JSON file, open Keyboard Shortcuts editor and select the Open Keyboard Shortcuts (JSON) button on the right of the editor title bar. This will open your keybindings.

Is Vim better than VS Code?

It's much faster and much more configurable than VS Code. It has all the main features from VS Code + others. Remember: vim is born to be used from terminal and to be paired with all the terminal tricks that exist around. It's a the perfect match on linux.


2 Answers

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

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

That should do it.

like image 63
thedayturns Avatar answered Sep 18 '22 15:09

thedayturns


If you running on Linux and have used setxkbmap to remap Esc to Caps-Lock and have problems, I suggest the following workaround Fix for Esc remapping.

The solution is to add the following to your User Settings

"keyboard.dispatch": "keyCode"

You should save and restart after that enter image description here

like image 21
fuadj Avatar answered Sep 17 '22 15:09

fuadj