Re: Backspace in insert mode


I've just upgraded to viemu 2.0, i like the new features.. But, backspace in insert mode is not the same anymore, nothing happends. How can I fix this problem?



Re: Backspace in insert mode

Seems to be some problem when I let viemu remove the keybindings. I have a keyboard setup where I have deleted some clashing bindings and that setup works fine.


Re: Backspace in insert mode

Henrik, the keyboard management code was probably overzealous. Maybe there is some other key bound to Edit.DeleteBackwards? You can find this out in Tools|Options|Keyboard: type the command name and open the dropdown to see what keys are assigned. You can also check the list of commands ViEmu removed in Tools|Options|ViEmu->Keyboard, probably the command is there with some other key assignment.

The documentation has detailed instructions on how to fix these situations once you know it is happening. Please let me know if I can be of help with this.


Re: Backspace in insert mode

Actually I do not know how I managed to get it to work. When I let viemu handle the clashing bindings I saw in the Tools|Options|Keyboard that there was no binding at all for Edit.Deletebackwords. But now it works, maybe it could be something with VP suite that I uninstalled while trying this.

However, it works for me now smile


Re: Backspace in insert mode

It's ok then. Just let me know if you need anything else!


Re: Backspace in insert mode

Actually, I'm running into this problem as well.

I just installed ViEmu 2.0 into two different copies of VS -- one copy where I previously had some 1.4.X installed and another one completely fresh.  I have the default ViEmu keyboard mapping scheme selected, with no modifications to saved keybindings or anything.  When I first start up VS, I run into this same problem with backspace not working in insert mode, and I've noticed a second one as well -- the CTRL-Tab that switches between files is also nonfunctional.  I haven't yet noticed anything else that's not working, but I also haven't done a lot of development in VS lately, so there could be others.

I have discovered a workaround -- if I deactivate the ViEmu keybaord mapping by returning it to Default Settings, and then re-activate the ViEmu keyboard mapping, then everything works fine.  It's mild annoyance, not too bad for the time being, but it strikes me as odd that that would fix it.

Perhaps of use to J is that when I first startup, the list of 'Current clashing keybindings' is empty, but after I do the unload/reload thing, the list shows the following:

Edit.MakeLowercase=Text Editor::Ctrl+U
Edit.ViewWhiteSpace=Text Editor::Ctrl+R, Ctrl+W
Edit.ToggleWordWrap=Text Editor::Ctrl+R, Ctrl+R
Edit.IncrementalSearch=Text Editor::Ctrl+I

I notice that neither Backspace nor the CTRL-Tab combo is listed in there, but again it's odd that the behavior changes.  Perhaps some problem with the initialization?

EDIT: After posting & re-reading the thread, I decided to investigate the mapping for Edit.DeleteBackwards, and it is indeed blank on VS startup, and properly mapped to Backspace after the unload/reload.

Last edited by epetrusic (2006-09-29 15:53:28)


Re: Backspace in insert mode


Thanks a lot for the detailed feedback. Indeed, it's useful, and I need to have a detailed look at this as soon as I can. It's causing trouble at several customer's installation.

Keybindings are a pretty dark corner of Visual Studio - some keybindings are configurable, while others are set by the system at an undefined stage during VS startup (for example, the basic editing ones - Left, Right, Up, Down, etc...). Possibly, ViEmu is doing its thing at an inappropriate moment in time.

I'd like to fix this for the time being, and I plan to implement a completely different keybinding handling for a future versions, which won't require messing with Visual Studio's keybinding table. It will be the only way to get a 100% rock solid solution.

I'll post about the solution as soon as I can properly investigate it.

Thanks and best regards,



Re: Backspace in insert mode


Is the misbehavior happening every time you start up Visual Studio? Or, is there any way to cause it to repeat?

If so, I would like to send you an instrumented build to help determine what is happening.




Re: Backspace in insert mode

I followed up with E. Petrusic by e-mail and determined the cause. Here is a detailed description of the problem and a way to fix it. I hope to fix this reliably and release a new build shortly, but it should only cause trouble on a few machines and only depending on the circumstances in which ViEmu scanned the keybindings list for the first time.



Hello Eric,

I have reviewed your log file & viemu.vsk file in detail. Indeed, the vsk file doesn't store any keybindings - that's why backspace, etc... don't work on startup. An empty keybinding list is being loaded.

I could repro it by installing your ViEmu.vsk file in my machine.

The source of the problem seems to be that ViEmu is loaded at a very early stage in the startup process in your installation. I don't know the reason, and the startup sequence is undocumented, but I'm looking for a reliable fix for this problem. Hopefully, I will be able to come up with one shortly.

But, anyway, this is only important the first time ViEmu scans the keybinding list in order to remove clashes - in the case of your setup, ViEmu scanned an empty list of keybindings (it hadn't been loaded yet), removed & saved the clashing ones (that is, none), saved it as ViEmu.vsk, and set this scheme as default. No wonder there are no keybindings anymore on startup.

It is very annoying, but the solution is simple: reset everything and perform a rescan. Here are the steps again:

(1) Remove everything done by ViEmu automatically to date:

  (1.1) Go to Tools|Options|ViEmu->Keyboard
  (1.2) Click "Restore" under the left list (say yes to the MsgBox)
  (1.3) Click "Forget" under the left list (say yes to the MsgBox)
  (1.4) Go to Tools|Options|Keyboard
  (1.5) Make sure that the current scheme is "ViEmu" (if not, select it
from the combo box)
  (1.6) Click "Delete" to delete the ViEmu scheme
  (1.7) Select your prefered "base" scheme from the list
  (1.8) Click 'Ok'

Now, everything should be clean again. Let's make ViEmu rescan the
keyboard and remove & save the clashing keybindings:

  (2.1) Go to Tools|Options|ViEmu->Keyboard
  (2.2) Make sure the list of keys to scan for clashes is to your taste:
           "Default" doesn't remove Ctrl-V/Ctrl-C for Copy/Paste, "All"
removes those too - click on the desired button
  (2.3) Click on "Save and remove"

Now, the left list should be populated with the removed bindings, and
the right list should be empty. Everything should be fine.

I apologize for the problems. This only happens on a few machines, and I hope to find a reliable solution and release a new build shortly. But, anyway, you shouldn't have any more problems with it after doing the above steps.

Please get in touch with me if something doesn't work as expected or if I can be of help in any way.

Best regards and thanks for your patience,