ViEmu is a Vi/Vim emulator add-in for Visual Studio that is the only one I consider a must-have in my Visual Studio arsenal: I love it. I’ve mentioned ViEmu on this blog in the past, and I still consider ViEmu a wonderful addition to make Visual Studio usable for us Vim users.

That’s not to say that ViEmu is perfect. I’m very happy with ViEmu most of the time, but there are a few issues that could be improved. One of those, is the Keyboard Management Dialog.

The main purpose of this dialog is to handle conflicts between keyboard mappings in your selected Visual Studio keyboard layout and Vim shortcuts/commands that ViEmu supports. You can get to it during the first few uses, or by going to Tools –> Options –> ViEmu –> General and clicking on the Keyboard button on the right.

In general terms, ViEmu does a good job of finding the conflicts and telling you about them. My problem, however, is with the dialog itself, which looks like this:

viemu-keys

I’m going to be brutally honest here: I have no freaking clue how this dialog is supposed to work. I somehow manage to set up my settings to something workable each time I re-install ViEmu, but to this day, I don’t know exactly how I accomplish that.

There are a couple of problems with this dialog:

  1. It’s not clear (to me, at least) what the buttons do. If I click on the Remove button on the right, does it remove the keybinding clashes? or does it leave the ViEmu one? What does the Forget button do? (Seriously, I have no idea).
  2. The clashing bindings appear to be only manageable as a single batch. Sometimes, I’d like an easier way to manage individual clashing bindings. While I’m fairly sure you can do that from VS’ own keyboard layout options screen, these will get lost in all the noise, so it’s not as obvious what you’re doing.

All this said, I do think the “Keys Scanned” textbox is a nice touch; it’s fairly obvious what it does and seems to work well.

Anyway, ViEmu still rocks, and I’m looking forward to future versions of the product to see what they come up with.


Tomas Restrepo

Software developer located in Colombia.