ViEmu/VS: vi-vim editing
for Microsoft Visual Studio

ViEmu/VS 2.1 Release Notes

New features:

  • Vista compatibility
  • :noh[lsearch] implemented
  • Keyboard management support for the Japanese version of Visual Studio
  • <c-t> now invokes View.PopBrowseContext (poor man's tag stack pop)
  • :set [no]remap implemented to disable all recursive mapping
  • visual block done by ^Q j $ now extends to the $ of each line
  • Special marks '[, '] (last pasted/changed/yanked/etc... range) and '^ (last insert pos) added
  • Added gi command, to go into insert mode at the last insert position
  • Proper keybinding management in German Visual Studio
  • :g and :s with use (when given an empty regex) and modify (in other cases) the 'last-search-string' as vi/vim, the same value used by n/N to repeat the last search
  • Implemented :> and :< ex commands for indenting/unindenting a range of lines
  • Implemented ":set [no]list" option, it toggles Visual Studio's "View Whitespace" setting
  • Implemented ":set [no]wrapscan" (or ":set [no]ws") option, it toggles wrap-around behavior for searches
  • Support for CUA-style selection (Shift+Arrow Keys or Navigation Keys)
  • Implemented ':set'/':set all' to show all the current settings
  • gI (input at "hard" beginning-of-line - column 0) implemented
  • ESC now removes the status message in normal mode
  • Resharper compatibility extended to Resharper 2.5
  • EULA updated to reflect the per-user license type (you could stay with the previous license, but this is just less restrictive)
  • 5:s syntax and offset-ranges (:.,.+4s/...)
  • Uppercase operators in :s subst string (\u \U \l \L \e \E)
  • gd to go to local definition
  • :u[ndo] and :red[o]
  • " comments allowed in .viemurc
  • 'v' in visual-chars, or 'V' in visual-lines... now exit visual mode
  • Paste auto-reindent (]p)
  • IME reset when pressing ESC (useful when using Japanese and other Far East languages)

Bugfixes:

  • hlsearch setting wasn't honored on startup, even if it was shown fine in Tools|Options|Viemu
  • The desired-cursor-col was not reset after moving the cursor by left-clicking
  • :set gdefault would not work in .viemurc
  • Pasting in VB would lead the language service into "partial" corrections and lead to syntax errors
  • The \| operator in regular expressions didn't work fine (would only match the second branch)
  • Ctrl-T/Ctrl-D in "virtual space" work fine (after o/O with autoindent)
  • :bd now removes the buffer from the buffer list (it also closes the file if it's the current file, not if it isn't)
  • infinite mapping loops detected & cut (eg, :map n l and :map l n)
  • 'A' on a visual block extended to end of line ($) wouldn't work
  • dd on a single-line file (or dG from the 1st line in any file) would leave a dangling line, fixed
  • Command line space much larger (it was read & processed, but not properly displayed)
  • Yanking of column blocks with empty lines fixed
  • Playing a macro from an empty register would crash VS (@a)
  • Crash when yanking/deleting a $-extended characterwise block fixed. This is after having added proper $-extended column block handling back in 2.0.28.
  • AltGr keys in international keyboards (Swedish, Spanish, etc...) didn't work right in normal mode. Esp. the '@' command (AltGr-2).
  • Changed the first-time keybinding removal logic so that it won't remove extra standard keybindings (backspace, ...)
  • Made Ctrl-[ in international keyboards where '[' is not on the same key as on the US keyboard work as Esc again
  • Fixed the '%' motion to start checking at the last character is the cursor is beyond the end of line (as vim)
  • Some remaining problems of AltGr key combinations fixed for international keyboard layouts (not repeating AltGr characters with '.')
  • Cursor position was not restored properly after many operations (dd, r*, etc...) - this was broken since 2.0.27
  • Pasting over a linewise visual selection at end-of-file didn't work well
  • Editing a long command line could result into a crash (only actually likely in versions before 2.0.32, where the buffer was small)
  • '.' would stop working properly for input repetition after switching back and forth between two split views of the same file
  • Crash that happened when exiting Visual Studio if no ViEmu-subclassed window had been actually used.
  • Tabify/Untabify commands under Edit|Advanced wouldn't work
  • gu/gU/g~ could get into an infinite loop when modifying lines with hard tabs while using soft tabs (or viceversa)
  • Shift-Tab in insert mode fixed so that it does its usual VS operation, that is, it unindents the line and cursor position if the cursor is anywhere in the leading whitespace in the line (else it does nothing).
  • The "Use VS Selection for visual mode" and "Windows-style word-wrap navigation" settings weren't honored on startup. They were persisted and read properly, and they'd make effect from the settings UI, but not when starting up VS again.
  • Pasting a block at the end of the file would send the cursor up to the top of the file
  • Fixed "//<return>" from creating a slow editing experience because of invisible zero-width markers inserted in between every two characters
  • Fixed problems when using 'r' in a $-extended visual selection
  • Fixed highlighting of block visual selection when there were hard tabs in a line
  • Motions i or a followed by one of {}<>[]bB now are adaptive linewise/charwise, as in vim
  • Ctrl-] followed by Ctrl-O didn't return to the point before Ctrl-], but to the one before that (it failed only in intra-file jumps)
  • When searching with '*' or '#', \<token\> is now added to user-typed search history (you can do /<up> and they'll be there)
  • Fixed bug in "single-line" files (cursor doesn't move) - it's a VS.NET 2003 bug, but ViEmu made it more apparent
  • The cursor sometimes wouldn't properly have its block shape since the first moment (hopefully fixed)
  • The '[' character was not allowed in sets in regular expressions ("[[abc]" means any of a, b, c and '[')
  • Fixed repetition with '.' of input including high-ascii characters (>127)
  • v$ wasn't represented well when using VS selection for visual mode
  • InternalUndoGroup() improved to obtain better performance (only slowed down in some installations)
  • Pasting a multiline block in a read-only file will now only warn once
  • Tilde key didn't work in swedish keyboard
  • HLSearch calculation made incremental, huge boost to the performance of hlsearch with large files
  • Searching doesn't enter folded #regions or outline folds
  • /;<cr>i<cr> failed, second <cr> didn't work (ECMD_RETURN was cached disabled)
  • Force undo grouping to be cut on buffer change (same as vim)
  • :bd wouldn't work in the first buffer (All)
  • :bd wouldn't work after closing a buffer with :bd and reopening it, if no other buffer got the focus in between (All)
  • Find in Files could sometimes freeze if hlsearch was enabled
  • The return key wouldn't work in the first opened buffer if Visual Assist is installed (VS)
  • Fixed another edge case in Visual Assist interaction, which would prevent Return from happening in VS2005 (can also happen in VS.NET 2003, but it's less likely).

Here are the ViEmu/VS 2.0 release notes.