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 (18.104.22.168) lags and pauses enough that it's a constant distraction. ViEmu has had no such issues.
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.
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!
Great extension bringing the power of Vim to Visual Studio. It's clearly not easy writing an extension like this and making it play nicely with all the other extensions on the market. However, VsVim achieves this and Jared is quick to respond and fix issues that do arise. I did actually buy ViEmu a long time ago, but have never looked back since finding VsVim. One day, I hope to actually find some time to contribute back.
Unfortunately you can't run VsVim, or any other extension, on Visual Studio Express. Microsoft locks out any extensions in the Express SKUs and there is unfortunately nothing I can do to work around the limitation.
VS has the option to replace tabs with a configurable number of spaces (Tools>Options>Text Editor>All Languages>Tabs, also configurable per file type). VsVim doesn't seem to honour this setting. Any chance of getting this included?
VsVim does support honoring this. It just prefers settings from the _vimrc file over the Visual Studio default if it finds a _vimrc. Here is a link that details how to get VsVim to respect Visual Studio over vim defaults for all settings
i don't seem to be able to bring any of this bindings to work:
so what i currently do is 'yiw' on the source and 'ciw<C-r>0' on the target.
but since i cant even repeat the change/paste via '.' my fingers hurt after the third occurence :)
is there a (more) painless way to do so?
Great plugin! Use it every day.
I was looking for a fast way to navigate between C# method declarations, and found the Vim commands ]m and [m. They don't seem to be in VsVim. or am I missing something?
This works as expected in gVim:
au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")
After I added it to my _vsvimrc (in my 'home' folder, C:\Users\hxchba), it seemed to have no effect.
Is there a 'VsVim' way to get the desired functionality?
Thanks for providing us with VsVim and making VisualStudio much more useful...
i'm facing the same thing as this guy: http://stackoverflow.com/questions/3718026/vim-indent-current-blank-line-and-insert
but none of the 'standard'-vim solutions seem to work for vsvim...
am i really stuck spamming C-t in insert-mode?
I'm actually baffled at why the accepted answer works. When I try that on gVim it doesn't indent the value but instead stays at column 0. Is there a particular setting I need to get `S` to indent to the column of the line above?
it surely works here..:
* freebsd 10.0
* vim & gvim
~ fire up (g)vim
~ write this (whereas _ denotes cursor):
~ press ESC and then S - you end up with:
Minor feature request.
When you use visual studio's "Go To Line" dialog (double-click on the line number label in the status bar at the bottom), it will expand folded code if the target line is contained there, then position the caret on the appropriate line.
VsVim does not do this and seems to stop on the outermost fold containing the target line (e.g. if a fold covers lines 5 to 100 and you do ':20<CR>' to go to line 20, the caret will go to the beginning of the fold at line 5 and stay there). If the fold has been expanded, it will jump to the target line as desired.
Thanks in advance,
I see! I have never tried using folds in gVim (I edit mainly plain text files there and they are short).
So what do you usually do when there's a clash between what VS does and what gVim does? In this case I hope the VS behaviour wins (or perhaps a setting could be provided to allow people to choose)!
Whenever the action involves cursor movement or placement I take gVim over Visual Studio. The reason being that most vim guys intuitively know where a given key stroke will take them. Doing actions like expanding the outlining would break say a jump followed by a yank. I get lots of negative feedback whenever I break cursor movement even, and sometimes especially, when it is subtle.
In general though it's not a problem because gVim has a setting that toggles between the behavior. I can just implement that and hence give people a work around. I'm trying to determine if there is such a setting here that I can just implement