VIM emulation layer for Visual Studio

(159) Review
Visual Studio
2013, 2012, 2010
Download (172,165)
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Reviews (159)
Q and A (181)
Sign in to write a review
Sort by:

by ovalsquare | Fri 12:17 AM


by Pål Fossmo | April 10 2014

by byte1918 | April 06 2014

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

by mwbrady68 | April 05 2014

by James Hart - LegacyTech | April 01 2014

Well done Jared! Now I feel right at home - you saved me a lot of frustration.

by inkadnb | March 20 2014

Wonderful plugin, look no further, this is THE VIM extension for Visual Studio.

Where can I send a donation?

by MDUnicorn | March 19 2014

Nice icon! This wonderful plugin needed it!

by moorejk | March 17 2014

It's been a long time since I used VI. It's the one thing I always found missing when using Visual Studio since I switched to Windows development back in 1995. It is so nice to get the power of VI back and to have it in Visual Studio is a bonus! Thanks so much!

by JumpingJeff | March 04 2014

Essential for me. One of the first things I download to customize Visual Studio.

by PaulOldridge | March 02 2014

Thank you! Now I can develop in Visual Studio 2013.

by Chubyone | February 24 2014

The Best way to learn vim from an old Visual Studio User, without losing your old habits & IDE's prefered features.

Thanks for your job.

by TomasDeml | February 15 2014

Once you make the effort to abandon the mouse and get used to vim, you will never want to go back!

by jakobschmid | February 11 2014

by Ricardo Kuchimpos | January 22 2014

Works perfectly!

by Brian Gianforcaro [MSFT] | January 15 2014

by peaeater | January 13 2014

It's a good vi plugin, and you can't beat free. However, I have used both VsVim and ViEmu, and I get noticeably better performance from ViEmu. In VS 2013 on my machine, VsVim ( lags and pauses enough that it's a constant distraction. ViEmu has had no such issues.

JaredPar MSFT January 14 2014
| Edit |

Could you elaborate on the scenarios where you see performance issues?

by falanh | January 12 2014

by Kazark | January 07 2014

This is a very good extension. It is not only actively maintained, but new features are continually adding, bringing it ever closer to Vim's behavior. Jared Parsons is very active in responding to issues submitted on the Github page and he works to prioritize the features according to what the users are most needing. I wouldn't use Visual Studio without it if I could possibly help it. This makes my job better every day.

by EricMutta | January 06 2014

This extension is beyond words! Here is what I love:

1) it's mostly complete - there a few commands missing here and there but you will never find yourself cursing at VsVim.

2) it plays nice with other extensions - Jared actually seems to go out of his way to make sure VsVim doesn't break or isn't broken by other extensions. I use the Refactor from Developer Express - the two play beautifully together.

3) it can be turned off temporarily - this, strange as it may seem, is probably the most important feature there is. If something goes horribly wrong, being able to turn off VsVim for a few seconds saves the day.

4) Jared's support is second-to-none - I don't think the man sleeps or knows the meaning of the word. Look at the Q&A page - every question is answered, every bug logged, pretty much every feature suggestion accepted and due to be implemented.

5) it's free - it shouldn't be, not with the kind of effort it takes to make such a high quality, super advanced and uber useful extension, but it's free. I feel guilty using it without paying, but it's free and always will be.

Only thing I hate is the feeling of VS2012 when VsVim isn't installed!

Thank you Jared!

by Bruno Miguelz | December 26 2013

This is the best. A must have for me... Thank you!

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

  • Block caret renders over quick find pop-up window
    2 Posts | Last post Sat 4:44 PM
    • Hi Jared,
      In previous versions you could not use normal mode commands when the Quick Find pop-up window was active. In you can and this is very useful! However, there seems to be a bug in the drawing code. 
      If you have the block caret over text in the top-right area where the pop-up window appears, pressing Ctrl+F will show the pop-up window but the block caret keeps being drawn over the pop-up window's screen area instead of being clipped out since it should be "behind" the pop-up window (the regular I-beam caret is properly clipped out in insert mode, as is the text in both normal/insert modes).
      Hope I explained that properly!
    • Sorry, thought I had responded to this a few days ago but noticed when answering a diff question that i had not.  
      Thanks for pointing that out.  It looks like my adornment is somehow beating out the find adornment and hence layering on top of it.  I'm looking into how to resolve that
  • repeating last colon-command
    2 Posts | Last post Sat 4:13 PM
    • sup jared,
      do i miss something or does @: really not work?
      (as in http://vim.wikia.com/wiki/Repeat_last_colon_command )
    • This is not yet implemented but is planned for the next version.  Here is a link to the issue that is tracking it
  • VsVim 1.6 with ReSharper
    15 Posts | Last post April 03, 2014
    • I've been using ReSharper 8.1 for a little while now and have had very minor performance problems.  Their tech support has told me that it's conflicting with VsVim a lot, which I haven't really been able to verify.  (The main problem is when scrolling with ctrl-u and ctrl-d.  Page up and page down work fine regardless of which plugin is turned on or off.)  I'm starting to believe them though because I just upgraded to VsVim 1.6 and the problem got a lot worse.
      So I have two questions.  First, is there a way to downgrade VsVim from 1.6 to 1.5?  I can't find anywhere to download older versions.  Second, are there any known ways to get VsVim and R# to peacefully coexist?
      P.S.  If it were to come down to picking one or the other, VsVim would stay on my computer and ReSharper would be uninstalled.  ;)
    • Sorry you're seeing performance issues.  
      Could you elaborate a bit more on the code you are seeing a perf problem with so I can try and reproduce it locally?  In particular how big are the files and do you use regions?  And it's just scrolling that is the problem? 
      You can definitely downgrade to earlier versions if you like.  Just uninstall the current version and then grab the older drops from here.  Every major version is supported and you can just download the VSIX and double click to install.  
    • I read this earlier whilst coming to ask about another issue, and it prompted me to try disabling vsvim. I have to say the editing seems to work a lot faster now in my large solution (Enterprise app with 25+projects).
    • @Dan do you GIT listed as your source code provider in Visual Studio?  If so try disabling that and seeing if the perf problems dissapear.
      I've had a few sporadic perf issues reported recently and at least one is tied to VS's GIT implementation.  The other is escaping me.  It's something I don't see locally and can't repro despite a lot of time spent looking into it.  If you were able to get a profile of the perf problem that would be much appreciated 
    • I had a hunch over the weekend as to what could be causing performance issues with VsVim + R#.  If either of you want to try this out it's a pretty easy test.
      First uninstall VsVim.  Then download this version from DropBox
      Start Visual Studio and go to Tools -> Options -> VsVim.  Change "Rename and Snippet Tracking" to False.  If that fixes the perf issue then I have a good idea at what the problem is.  If not then it's back to deep thinking :( 
    • Hi Jared,
      I just came across VsVim last weekend and have been trying it out, and have experienced the same issues as Dan and mrubelmann.
      I am also running VS 2012 with Resharper 7, along with WebEssentials and a couple of other extensions.
      I'm testing out that PerfTest build, but I cannot seem to install it. I get an error saying that it cannot find the reference Visual Studio MPF. I have installed the SDK to try to resolve this, but no luck so far. My Google search skills are also failing to provide any solutions.
      If you have any ideas on how to resolve this I'd appreciate it.
      - Laurence
    • That build is experimental and it looks like I haven't worked out the dependency kinks yet.  Going to try and fix that up tonight and see if I can get a different build out
    • Found a quick fix to that problem.  Here is the new drop 
    • That installed without trouble, thanks.
      Initial test without the option disabled shows a slightly faster editing speed (perception, no actual time values). I still get brief lags while Resharper or Visual Studio does validation on what I just typed.
      After turning off Rename and Snippet Tracking I do not see the lags while typing, and Intellisense is still filling in values. Resharper's code suggestions and reformatting still work, and the Resharper rename works fine too.
      I'd say I definitely notice and improvement from this new build. If you need me to test snippets please let me know.
      Thanks again for creating and supporting this plugin! I'm still getting my head around vim and being able to code with it in Visual Studio is really useful.
    • Thank you for testing that out!  That gives me a good indication of where I need to be looking now.  
    • One feature that does not appear to be supported is being able to do global substitutions within a given range.  For instance, suppose I mark one line using ma and a line further done with mb, then in standard Vim, you can then do:
      :'a,'b s/cat/dog/g
      for instance.  
      works, it would be very helpful to be able to do substitutions within a restricted range.  Is there any way to get some equivalent behavior or functionality in VsVim?  
    • I forgot to mention that I also use ReSharper 8.1, which may be interfering with this feature if supported.
    • Interesting point re git integration. I will test with it off for a while. I know git integration has caused me a lot of probs in the past as git on windows has woeful performance.
    • @J Joe Fowler
      VsVim does support the substitute command over a specified range.  The current syntax doesn't support a space between the closing mark and the 's' though.  I just checked and gVim supports a space there so I filed the following bug to make that fix in VsVim
    • Great, I would have never thought not to include that space.  I just tried using VsVim without the space, and it worked great.  Thanks!!
  • Reproducing Windows editing behaviour in insert mode
    3 Posts | Last post April 03, 2014
    • Hi Jared,
      Just got the latest version and discovered the whichwrap and backspace options which sound like a solution to a long-standing peeve I've had with Vim. Currently I have added the following in my _vsvimrc:
        set whichwrap=b,s,h,l,<,>
        set backspace=indent,eol,start
        nmap <LEFT> h
        nmap <RIGHT> l
        imap <LEFT> <ESC>ha
        imap <RIGHT> <ESC>la
      But I am facing the following problems:
      1) arrow-key wrapping at the beginning of a line works in insert mode. If I press LEFT I end up at the end of the previous line as expected. But pressing RIGHT at the end of a line doesn't wrap to the start of the next one (in normal mode, both work fine).
      2) pressing Backspace at the beginning of a line in insert mode does not join it to the previous line as would happen in a standard windows text box. It deletes the character to the right of the caret as if I had pressed the Delete key.
      Is this expected behaviour? What combination of options do I set to make the left/right/backspace keys work like in Windows during insert mode?
      Much appreciate your continued efforts on this plugin!
    • @Eric what version of VsVim do you have installed?  Both of those actually work fine on my machine.  I'm pretty sure #2 was a bug we fixed in 
    • I removed my _vsvimrc and opened VS2012 again. It all works fine before applying my key mappings, so I rebuilt the _vsvimrc line by line and removed the problematic mappings (along with settings I had from Vim that are not needed in VsVim).
      All good to go now, thanks!
      PS: rebuilding the file line by line was painful. Found myself wishing there was a debug mode where VsVim would execute each command in turn (echoing it somewhere so you know what just got mapped) and let the user try editing to see if anything changed. Or perhaps a "plain mode" where VsVim would unload the _vsvimrc file and return to its default settings so one can test the behaviour to ensure that it's the rc file that causes a problem.
  • delete in paragraph
    2 Posts | Last post March 22, 2014
    • Hi Jared, 
      Great plugin.  I can't live without it!
      The "in paragraph" object doesn't seem to be there yet. 
      "dip" and "cip" don't do anything, but "dap" and "cap" work properly.
    • Glad you enjoy it!
      We're hoping to get the `ip` support working in one of the next releases.  There are a couple of issues filed on it at the moment that we need to get fixed up.  
  • Quick Search Panel and VsVim
    3 Posts | Last post March 21, 2014
    • Hi Jared,
      Love the plugin, but is there any chance of an option that would stop the quick search popup stealing the vim hotkeys even when it doesn't have focus? I know you don't want to get into working out the intersection of the popups hotkeys and vsvims, but I'd be totally fine ignoring the popups ones.
      Right now if one does a search, then switches focus to the editor, its like vsvim is turned off (or in edit mode) as all keystrokes just edit the document.
    • Hi Dan, had this same issue but its fixed in the latest version!
    • Awesome!
  • Highlight current line?
    3 Posts | Last post March 18, 2014
    • Hi Jared,
      VS2012 with Update 4 seems to have a really annoying bug: if you open a new tab with any text file, the "highlight current line" editor setting isn't honoured. You have to go "Tools > Options > Text Editor > Display" and untick "highlight current line", press OK, then do the same and tick it again. When the editor receives focus the second time the highlight works.
      I know Vim has a similar setting enabled via "set cul" and I have added this to my _vsvimrc to see if VsVim supports it. It does but the same problem persists: open a file, no highlight, reload _vsvimrc via the :source command and the highlight appears.
      What should I do? (I've looked in vain for another extension that will just highlight the current line).
      PS: I got version 1.6 and saw the fix for the situation where the pop-up Find window would disable VsVim normal mode commands. You mentioned this would be a tough fix but you did it anyway - thanks a lot!
      PPS: my line highlight is customized to a lime green colour on a light grey background, and I removed the annoying rectangle VS2012 draws by default. Dunno if this is related.
    • This should be controlled through the cursorline setting.  If you add `set cursorline` to your vimrc file does it highlight by default after that? 
    • They are the same command ('set cul' is an abbreviation in Vim for 'set cursorline'), so I am getting the same behaviour - when you open a tab, no highlight. Reload _vsvimrc via :source and the highlight comes on in the already opened tab.
      Whatever VsVim is doing to the editor to show the highlight when I do :source, ought to happen when the tab is first opened too.
      Right now I have mapped a key that will do :source for me so at least I can just hit the key to refresh instead of going through the tedious "Tools > Options > ..." route.
      Thanks for looking into it,
      PS: liking the new logo! It's what caught my eye and alerted me to availability of the latest version when I was poking around in the Extension Manager looking for another "highlight line" plugin.
  • move to line 0 actually moves to line 1 (+strange cursor placement)
    2 Posts | Last post March 14, 2014
    • 1st: some text:
      2nd: :m0
      actual result:
      expected result:
      for lines other than 0 the result looks okay, but the cursor is still placed at the end of the previous line instead of the beginning of the line just moved:
      :m1 does:
      but i'd expect
    • I think that we fixed this already in the most recent code.  If so it will be included in the update to be released today / tomorrow
  • <C-End> vs G
    4 Posts | Last post March 14, 2014
    • selecting everything works with either
      but with neither
    • Can you give me an example of where the last 2 commands behave incorrectly?  Possibly with some sample text? 
    • <C-End> seems to exit visual mode (|==cursor as usual):
      1st: write some text, place cursor randomly:
      2nd: press ggv
      texttexttext  **VISUAL**
      3rd: press <C-End>:
      alternative 3rd: press G
      |<selectionend> **VISUAL**
      hope that helps :)
    • Thanks, I'll take a look at that
  • studio autocomplete + . = :(
    2 Posts | Last post March 12, 2014
    • when devenv is nice to me it breaks vsvim..:
      e.g. editing XAML, i enter St= (= accepts intellisense, | is the cursor):
      devenv autocompletes this to:
      then i type { so it gets:
      then i type x\n\n (accepting intellisense twice) results in:
      esc, move to another position, press .(=repeat) now inserts:
      so some intellisensesuggestions like the 'Null' get repeated,
      some (like the 'Style") dont. and the " and } are also missing.
      is this known? which features can i use without breaking 'repeat'?
    • Thanks for reporting this.  It's a known issue that we are working on a fix for.  When VS inserts random text, as happens during a brace completion, it breaks our repeat strategy.  Trying to find a good way to accommodate this without having to special case the editors 
1 - 10 of 181 Items