VsVim

Free

VIM emulation layer for Visual Studio

(177) Review
Visual Studio
2013, 2012, 2010, 14
Download (198,424)
7/21/2014
1.7.0.0
View
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Description
Reviews (177)
Q and A (204)
Sign in to write a review
Sort by:

by Steve Blomify | Mon 10:29 PM

Vi got under my skin 20+ years ago, and ever since, I find my fingertips are always itching to switch into vi mode, as it's the most intuitive way to edit code that I've encountered. So it was great to find this extension, and I'm impressed at how well such a minimal editor integrates into such a richly featured IDE. VS feels incomplete without it now . . .

Really nice work!

by Emil Jasiński | Sat 8:39 AM

by case23_69 | August 08 2014

Awesome - thanks for sharing!!

by byte1918 | July 22 2014

It's the first extension I install in Visual Studio. It's a must have if you ever liked working with VIM. Thank you Jared. Awesome!

by Nathan Friend | July 08 2014

Very impressive extension.

by Matthew199 | July 03 2014

Simply fantastic, how have I gone so long not knowing this even existed! Thank you so much...

by Vinod Pankajakshan | June 27 2014

Vimming in Visual studio is simply mind boggling.. thank you for making this happen Jared Parsons.

by Porges | June 19 2014

by feverforce | June 12 2014

Awesome tool! Can't use VS without it.

by Iain Ballard | June 09 2014

One of the best Visual Studio extensions available. Along with R#, it's one of those "Wouldn't use Visual Studio without it" add-ons.

by Galen Elias | May 24 2014

This is extremely well done, I can hardly tell I'm not in Vim. Would be nice to have a bit more configurability, but overall this is great!

by Joe Egan | May 20 2014

This is always the first Visual Studio extension I install - could not imagine working in Visual Studio without it. VsVim is rock-solid and simply allows me to edit code more quickly.

For the uninitiated (or the Vi-traumatized):

1) It does not take comprehensive knowledge of Vi(m) commands to be much more productive with this extension (or Vi(m) generally). Basic Vi commands (http://www.cs.colostate.edu/helpdocs/vi.html) pack a lot of punch.
2) Yes, I am quite familiar with comparable Windows keyboard shortcuts for many things I do Vi-style using VsVim - and find myself seamlessly interleaving them with Vi(m) commands; TMTOWDI; but Vi is everywhere (including Visual Studio thanks to this awesome extension) and reduces reaches for my mouse and contortion on my keyboard more than anything else I have tried over 20+ years of nerdery.

Highly recommended!

by HoangITK | May 16 2014

I love it!

by Z Sun | May 13 2014

Very cool plugin, definitely made Vim users more productive in Visual Studio.

by Matt Winegar | May 07 2014

Sure, maybe I am using the wrong name for the feature (its really just renaming, not refactoring). In VS, if you highlight (select) a variable name, on the declaration, and type over it with a new name, an icon appears that you can click on to open a menu that says "Rename <old name> to <new name>". Then if you click that, VS updates all of the references to this variable to the new name.

Also, you mentioned C#, which I haven't tried this in. I noticed this in VB, which is what most of the code I am working with is written in. This is not resharper or a similar plugin, as I do not have these for VS 2013 (still vanilla on that).

I don't have to do the renames that often, so I can work around for now by temporarily disabling the plugin and re-enabling when done, with VS restarts. I wouldn't do this for small local variables, but for properties, etc. of classes that are referenced multiple places, this might still be the quickest way, as a workaround.

JaredPar MSFT May 07 2014
| Edit |
Delete

Ah, I didn't think about trying that in VB. I've played around with it a bit and I have a theory about why the rename refactor doesn't get hooked up after a select + edit. Going to look into this

by Thumbmunkey | May 07 2014

by Mateusz Stepniak | May 02 2014

Let the Vim force be with you
- in Visual Studio too!

by Martin Rykfors | April 23 2014

I really enjoy using this plugin and the author is doing a superb job maintaining it and responding to bug reports. A great opportunity to learn Vim!

by bumblebeeman | April 22 2014

by ovalsquare | April 11 2014

Indispensable.

1 - 20 of 177 Items   
Sign in to start a discussion


  • DD command cursor
    3 Posts | Last post July 23, 2014
    • Hi Jared, when you first type the d command the cursor in normal mode should go from a full block to a half block letting you know you pressed the key for the first part of a command, this currently works on the y and c commands perfectly and I thought before the upgrade this used to work. I'm using version 1.7.0.0.
      
      Is there a hidden setting that makes this work like it used to?
      
      Thanks.
    • I just checked and VsVim will use the half block on `d`.  If it remains in a full block that typically means you have a normal mode mapping involving the `d` character (say :nmap da blah).  In that case when you press `d` there is an ambiguity and VsVim correctly keeps it at full block
      
      Eventually though the key mapping should time out in favor of the delete version of `d`.  At that point VsVim should be redrawing the caret at half block.  It is not though.  I filed the following bug to fix that up 
      
      https://github.com/jaredpar/VsVim/issues/1409
    • You are correct, I had a d mapping, I removed it and it works like normal again, 
      
      Thanks for your hard work on this.
  • ge command not working
    3 Posts | Last post July 18, 2014
    • Hi Jared,
      
      In gVim I can type 'ge' in normal mode to jump to the last character of the previous word, but for quite sometime now I can't get this to work in VsVim (using v1.6.0.3 with VS2012 Update 4). 
      
      Is this feature supported?
      
      Many thanks,
      Eric.
    • Great timing on the question. I just added support for 'ge' into the code base 2 days ago.
      
      https://github.com/jaredpar/VsVim/issues/1124
      
      If you want to grab a build that has this feature you can do so from here 
      
      https://ci.appveyor.com/project/jaredpar/vsvim/build/artifacts
    • I still can't believe this thing is free! Many many thanks Jared!
  • 'Again' not working properly
    2 Posts | Last post July 16, 2014
    • Consider the following text:
      
          public SomeType MakeCopyFunc(SomeType 5)
      
      If I place the cursor on the 'S' after public then type cwMyObjectType<esc> it will delete SomeType,and replace it with MyObjectType. This is good. But then I navigate to the 'S' after the '(', and hit the '.' key to repeat the last action, rather than replace SomeType with MyObject, it will replace it with _MyObjec .
      
      Any idea what would cause this?
      
      I can't quite figure out why it does it sometimes and not others. I will report back when I have it narrowed down.
    • That definitely shouldn't be happening.  I have a lot of tests for this feature, many on very similar scenarios so I'm not sure why you are seeing that.  If you are able to narrow this down please let me know 
  • Shift+8
    3 Posts | Last post July 15, 2014
    • I don't know the vim well; however, I usually use the "shift+8" to find same keyword. 
      "N" is used to go next find result, and the "shift+N" is used to go previous result.Current version of VsVim is operated well for "shift+8" but there is no highlighting.  Is it possible to highlight the keyword of the result of the "shift+8" ?
    • To enable highlighting of searches type the following command (followed by enter)
      
      :set hlsearch
      
      This will cause all search results in Vim / VsVim to be highlighted
    • Thank you for your answer and your devotion for the VsVim. 
  • How to insert yanked lines/words in command line?
    3 Posts | Last post July 11, 2014
    • Hi there! In vim I could do <CTRL-R> " and get my yanked data in vim command line, but in vsvim I don't see these feature. So, how I can insert yanked data?)
      
    • Right now you can do this by just using a Windows Paste operation (Ctrl+V).  I have the following issue tracking getting Ctrl-R support into the command line editor 
      
      https://github.com/jaredpar/VsVim/issues/551
    • Thank you for answering :)
  • Possible Expression Editor Regression
    7 Posts | Last post July 07, 2014
    • I downloaded the version from this site but the issue described here (https://github.com/jaredpar/VsVim/issues/1088) is causing me problems. Is it possible that a regression has been introduced since this bug was fixed?
      
      
    • It's possible there is just a case I missed there.  What bad interaction specifically are you seeing?  
    • Hi,
      
      great extension, thanks a bunch for creating and maintaining it!
      Is there anything like EasyMotion (e.g. like for Sublime Text: https://github.com/tednaleid/sublime-EasyMotion) available?
    • No, there is no real equivalent for that in VsVim.
      
      However that does look like a super interesting idea.  I'm toying with the idea of just writing a stand alone EasyMotion plugin for Visual Studio.  May try and do that later this afternoon as a fun project.  Will post back here if I do.  
    • Yeah, EasyMotion is incredible useful for navigating inside the current visible part of code. I can't live without it in gVim :)
      
      If you have the time to code it a few things would be nice to have:
      - Beeing able to set the keyboard shortcut for it (e.g. Ctrl+,)
      - It would be nice if we can define the character range
      By default it's normally "a-zA-Z0-9"
      but I normally exclude 0-9 to make the keys easier to reach.
      
      Thanks Jared for considering it!
      
    • I started working on it today and have the basic mechanics working at this point
      
      https://github.com/jaredpar/EasyMotion
      
      Still needs a *ton* of polish, in particular getting the initial search bound to a key stroke rather than a menu item.  Will probably get this posted by EOW unless I hit some kind of snag 
    • Added a very early version of EasyMotion to the gallery.  Still very much alpha / beta but can be played around with.  Please let me know about any issues you find (probably quite a few)
      
      Gallery: http://visualstudiogallery.msdn.microsoft.com/86548753-2b00-42e0-a40c-185f93e37a4f
      
      Github (code + issues): https://github.com/jaredpar/EasyMotion
  • REG 0
    3 Posts | Last post June 10, 2014
    • Typing in :reg 0 in command line gives this error:
                    Trailing characters
      
      Would you be able to support showing selected registers at once in the future like VIM does?
      For example:
                       :reg a b c
      
      Thanks.
      
    • Also,
      :reg " for the unnamed register shows the whole list, but should only show the " register. Typing in just :reg to show all registers works properly, I have the latest version installed, thanks.
      
    • Thanks for reporting the issue!
      
      Right now this feature isn't supported.  Only :reg without options is actually implemented.  The reason you are seeing the different behavior for :reg " is that the parser is interpreting " as a comment and hence just parsing out :reg by itself.  
      
      I filed the following issue to look into this
      
      https://github.com/jaredpar/VsVim/issues/1379
      
  • Support for inner tag block command?
    2 Posts | Last post June 03, 2014
    • It doesn't seem the "it" command works with VsVim (eg: "dit" to delete everything within an html tag).  I noticed it does work in sublime text's vim emulation.  It would be a much appreciated feature!  Great work btw, I love the plugin!
    • Support for "it" is being tracked by the following issue
      
      https://github.com/jaredpar/VsVim/issues/1094
      
      I'm hoping to get that into the next release of VsVim.  
  • Visual mode disappears when moving cursor
    2 Posts | Last post May 26, 2014
    • A lot of times the visual mode __shift + v__ disappears if I press (or keep pressing) hjkl or Ctrl+d (page up) or Ctrl+u (page down). This can get quite frustrating. If you can reproduce this bug, would appreciate a fix for this.
    • I've tried to reproduce this and I'm unable to do so.  Is there a particular file type or size that this reproduces on more often? 
  • Backspace not working in Insert Mode?
    2 Posts | Last post May 26, 2014
    • Hitting the <backspace> button on the keyboard whilst in INSERT mode does not delete the character.
      
      Any help would be appreciated.
      Thanks.
    • Sorry you're having an issue.  The most likely cause of this is VsVim is picking up your _vimrc and it has an insert mode mapping for the <BS> key that VsVim can't handle.  The easiest way to test this is to run :imap and see if the <BS> key is mapped.  If so the quick fix is to run :imapc
      
      Long term the fix is to add a _vsvimrc file in the same location as your _vimrc file.  VsVim will prefer this file and hence not read in the mapping. 
11 - 20 of 204 Items