VsVim Update Released (Version 0.9.5)


I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link.

Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329

GitHub: http://github.com/jaredpar/VsVim

This update includes the following

  • Lots of undo / redo issues
  • Lots of caret positioning issues
  • Support for tabs
  • And of course many other bug fixes

I do want to take a second and again thank Martin Lemburg for the many detailed issues filed during the 0.9.4 release.  It really helps to have such great feedback to work against.

Note: The latest release is 0.9.5.1.  I released a patched version of 0.9.5 to deal with bad behavior in the ‘%’ motion which was breaking a lot of users.

Future Plans

I’m aiming for 0.9.6 to be a quick release cycle.  The main focus of this release is getting macros and visual block operators working.  I already have macro support working in the beta tree.  I want to spend a few weeks working out the kinks and getting through other bug fixes and then I’ll release 0.9.6. 

Macros represent the last major feature for the 1.0.0 release.  So after 0.9.6 there will maybe be 1 more bug fix release before 1.0.0!

The usual caveats and expectations

This extension is being released by me, not by Microsoft.  As such the support level for this extension is equivalent to the amount of free time I have to put into it.

Source for this release is available on the GitHub project site.  It and the associated binaries are released under theMS-PL.

Comments (12)

  1. Grigory Petrov says:

    Thank you for outstanding work! Having VIM keyboard mapping blends two great products together for a pleasant developer experience.

    Do you have any plans to improve Visual Assist coexistence? Currently, h/j/k/l movement breaks selection if Visual Assist is installed alongside with VsVim :(. And Visual Studio Intellisence is not yet working for C++, so Visual Assist is a must for majority of developers ^_^.

  2. jaredpar says:

    @Grigory,

    Glad to hear you're enjoying it!

    Yes I do intend to look into the Visual Assist issues.  Issue 319 (linked below) is tracking the Visual Assist integration issue and I will look into it before the 0.9.6 release.  

    github.com/…/issues

  3. Evan says:

    Thanks for the work you are putting into this. I especially like how well it works alongside Resharper.

    You said as part of this release you added support for tabs. Does this mean that we can specify the behavior of the '>>' and '<<' commands? If so, how do I specify how I want tabs to be interpreted.

    Currently when I use either of those commands I get 4 spaces, no matter what Visual Studio settings I have specified.

  4. jaredpar says:

    @Evan,

    I added a WIKI entry on how VsVim uses tabs here

    github.com/…/VsVim-Nonstandand-Behavior

    In short: By default VsVim will prefer Visual Studio's tab settings over the traditionally Vim settings.  It does so by reading the tab settings for the current file and applying them to operations like >> and <<. So if you specifying tabs as the default for a file they will be used.

    For example in a C# file.  Go to Tools -> Options. Navigate to Text Editor -> C# -> Tabs and select "Keep Tabs".  Now >> operations should insert tabs.  

  5. Evan says:

    @Jared

    Thanks for replying. The behavior I'm looking for is to insert 3 spaces instead of 4, specifically in javascript and C# files. I set the Text Editor settings for both Javascript, C# and for all file types to 3 spaces in hopes of getting it to work, but I still always get 4 spaces.

    I'll try overriding vsvim's default behavior, and set the tab settings in my vimrc file.

  6. @knuckleswanny says:

    I love this plugin. It's funny, using vim as my text editor and your vsvim plugin, I find myself having difficulty whenever I use non-vim tools like Word or emails in Outlook.  Thank you very much for all of your hard work, this is truly a great addition to Visual Studio.

  7. strictlymike says:

    JP, your brilliant VsVim plugin makes VS2010 a LOT easier for me to use–thank you so much for your work!

    I know you probably have limited time to spend on VsVim, but here are some additional commands that Vim supports and that might make VsVim even better…

    Insert mode keyword completion:

    ^N – cycle to next matching keyword

    ^P – cycle to previous matching keyword (it works kind of like IntelliSense)

    Pasting within insert mode:

    ^R+ – paste global clipboard while in insert mode

    ^R" – paste default buffer while in insert mode

    ^Rx – paste buffer x while in insert mode

    Miscellany:

    '' – return to last position.

    :set nu – line numbering.

    ^A – in insert mode, paste the text that was last typed while in insert mode; in command mode, increment the next number at or after cursor.

    ^X – in command mode, decrement the next number after cursor

    gww / gw<motion> – wrap lines as directed by motion, e.g. gw}, gwap, or gwG.

    I also found a minor behavior inconsistency versus Vim / gVim on Windows and Linux:

    $cl – When the cursor is on top of the last character of a line in command mode, and the cl command is issued to overwrite that character and enter insert mode, VsVim reports "Invalid Motion".  The C and c$ commands (overwrite to end of line and enter insert mode) work fine, however.

    And a bug or otherwise difficult-to-understand behavior:

    U – Undo stopped working altogether several times, not sure why.  Visual Studio Edit menu also would no longer support Undo.  Only affected a single file at a time.  Worked around this by closing and reopening the file.

    I tried to quickly scan others' feedback so as not to repeat anyone, but please pardon me if I did duplicate anyone else's comments.

  8. jaredpar says:

    @strictlymike,

    Thanks a bunch for the suggestions.  Most of these are already documented on the Issues portion of the VsVim github site.

    github.com/…/issues

    Please do post any of your suggestions you want here.  I pretty much use this issue list to drive features for VsVim

    The Undo issue is known unfortunately.  I'm in the middle of releasing a patch for it right now.  An update should appera in the Visual Studio gallery in about an hour with the version number 0.9.5.2

  9. tyrellj says:

    I started using VsVim yesterday and I'm enjoying it a lot. I appreciate all your hard work. I put in a couple issues for things I noticed, but overall I'm very happy with the addin and looking forward to future releases.

  10. jaredpar says:

    @tyrellj  glad to hear you're enjoying the extension!  I actually just released 0.9.6 to the web about an hour ago and will formally announce it on Monday / Tuesday.  

    Unfortunately I was too close to the 0.9.6 release to fix the bugs you just filed.  But it looks like they will fit into the 1.0 release which is due out in about 3 weeks.  Thanks for taking the time to file them!

  11. lucifer says:

    The addon is very good, but I have to say there are some problems in my envirenment.

    First of all, it conficts with some extension, such as Visual SVN, when I installed VSVim, this extension doesn't work at all(no hint of code modification, no flag before source code file,etc), even I disabled VSVim, Visual SVN also doesn't work.

    And the most important part is the CPU usage, VSVim will take up a lot of CPU resource when I press on my keyboard(I can feel the deday of VS intellisense).

    Even in INSERT mode, the CPU usage is high. I think VSVim should not use so many CPU resource in INSERT mode. Maybe there's some compatiblility problems.

  12. jaredpar says:

    @lucifer

    Does your solution make extensive use of outlining / collapsed regions?  There is a known issue in 0.9.6 (and many prior versions) that cause VsVim to hit a high CPU load when there are large collapsed regions in the document.  

    github.com/…/510

    Does this look like it fits your scenario?