Re: ViEmu Keyboard Manager

I read this post:


And followed it in order to remove/fix the keyboard clash's, but it was not sucessful for me.  I clicked ‘restore’ and then ‘forget’ on the left hand side which then clears the left hand side, then ‘save and remove’ on the right hand side.  Instead of clearing the right hand side, it populates the list again in both the left and right side.  I have two sets of bindings…one for VS2005 and one for VS2008.  I should note that I only attempted this on the 2005 version.  I’ll post them below. 

Any advice you can give will be greatly appreciated!

Saved Keybindings:
View.TeamExplorer=Global::Ctrl+\, Ctrl+M||Global::Ctrl+W, M||Global::Ctrl+W, Ctrl+M
Edit.MakeLowercase=Text Editor::Ctrl+U||DataWarehouse Designer::Ctrl+U
Edit.SwapAnchor=Text Editor::Ctrl+K, Ctrl+A||DataWarehouse Designer::Ctrl+R, Ctrl+P||Text Editor::Ctrl+E, A||Text Editor::Ctrl+E, Ctrl+A
Edit.GotoBrace=Text Editor::Ctrl+]||DataWarehouse Designer::Ctrl+]
Edit.DeleteHorizontalWhiteSpace=Text Editor::Ctrl+K, Ctrl+\||DataWarehouse Designer::Ctrl+K, Ctrl+\||Text Editor::Ctrl+E, \||Text Editor::Ctrl+E, Ctrl+\
Edit.ClearBookmarks=DataWarehouse Designer::Ctrl+K, Ctrl+L||Text Editor::Ctrl+B, C||Text Editor::Ctrl+B, Ctrl+C
Edit.ToggleBookmark=Text Editor::Ctrl+K, Ctrl+K||DataWarehouse Designer::Ctrl+K, Ctrl+K||Text Editor::Ctrl+B, T||Text Editor::Ctrl+B, Ctrl+T
Edit.NextBookmark=Global::Ctrl+K, Ctrl+N||DataWarehouse Designer::Ctrl+K, Ctrl+N||Text Editor::Ctrl+B, N||Text Editor::Ctrl+B, Ctrl+N
Edit.PreviousBookmark=Global::Ctrl+K, Ctrl+P||DataWarehouse Designer::Ctrl+K, Ctrl+P||Text Editor::Ctrl+B, P||Text Editor::Ctrl+B, Ctrl+P
Edit.CharTranspose=Text Editor::Ctrl+T||DataWarehouse Designer::Ctrl+T
Edit.ViewWhiteSpace=Text Editor::Ctrl+R, Ctrl+W||DataWarehouse Designer::Ctrl+R, Ctrl+W||Text Editor::Ctrl+E, S||Text Editor::Ctrl+E, Ctrl+S
Edit.FormatSelection=Text Editor::Ctrl+K, Ctrl+F||DataWarehouse Designer::Ctrl+K, Ctrl+F||Text Editor::Ctrl+E, F||Text Editor::Ctrl+E, Ctrl+F

Current Clashing Keybindings:
Edit.SwapAnchor=Text Editor::Ctrl+E, Ctrl+A
Edit.DeleteHorizontalWhiteSpace=Text Editor::Ctrl+E, Ctrl+\
Edit.ToggleBookmark=Text Editor::Ctrl+B, Ctrl+T
Edit.NextBookmark=Text Editor::Ctrl+B, Ctrl+N
Edit.PreviousBookmark=Text Editor::Ctrl+B, Ctrl+P
Edit.ViewWhiteSpace=Text Editor::Ctrl+E, Ctrl+S
Edit.FormatSelection=Text Editor::Ctrl+E, Ctrl+F
Edit.ToggleTaskListShortcut=Text Editor::Ctrl+E, Ctrl+T
Edit.CommentSelection=Text Editor::Ctrl+E, Ctrl+C
Edit.UncommentSelection=Text Editor::Ctrl+E, Ctrl+U
Edit.FormatDocument=Text Editor::Ctrl+E, Ctrl+D

Saved Keybinding:
View.Toolbox=Global::Ctrl+Alt+X||Global::Ctrl+W, X||Global::Ctrl+W, Ctrl+X
Debug.Threads=Global::Ctrl+Alt+H||Global::Ctrl+D, T||Global::Ctrl+D, Ctrl+T
View.SolutionExplorer=Global::Ctrl+Alt+L||Global::Ctrl+W, S||Global::Ctrl+W, Ctrl+S
View.PropertiesWindow=Global::F4||Global::Ctrl+W, P||Global::Ctrl+W, Ctrl+P
View.TaskList=Global::Ctrl+\, Ctrl+T||Global::Ctrl+\, T||Global::Ctrl+W, T||Global::Ctrl+W, Ctrl+T
View.Output=Global::Ctrl+Alt+O||Global::Ctrl+W, O||Global::Ctrl+W, Ctrl+O
View.ObjectBrowser=Global::Ctrl+Alt+J||Global::Ctrl+W, J||Global::Ctrl+W, Ctrl+J
View.DocumentOutline=Global::Ctrl+Alt+T||Global::Ctrl+W, U||Global::Ctrl+W, Ctrl+U

Current Clashing Keybindings:
View.TaskList=Global::Ctrl+W, Ctrl+T
Debug.QuickWatch=Global::Ctrl+D, Ctrl+Q
View.ErrorList=Global::Ctrl+W, Ctrl+E
View.CodeDefinitionWindow=Global::Ctrl+W, Ctrl+D

Thanks in advance!


Re: ViEmu Keyboard Manager

Hi Darren,

Indeed, the ViEmu keybinding management system is somewhat confusing. The good news is that ViEmu 3 will sidestep the whole issue by implementing a new keypress-interception mechanism. It is already in active development, and it will be released later this year.

Ok, let's try to address this while we still have to live with the old system. The weird step is that ViEmu seems unable to remove some of the keybindings (those that are still left on the right-hand-side list after clicking 'Save and Remove').

I take it that if you do the whole thing over again ('Restore' and then 'Forget' on the left-hand-side, then 'Save and Remove' on the right-hand-side), the situation stays the same? Are the same commands left on the right hand side?

ViEmu has to call into VS's keybinding management APIs for this, and this is a somewhat shady/buggy area of Visual Studio. I am completely sure of this, I traced through the VS code in assembly and found some bugs back in the day, which I mostly worked around. Possibly some of this behavior is still causing trouble.

If the current configuration isn't problematic for you, with the exception of the warning about clashes at startup, you can disable that check from Tools|Options|ViEmu so that it won't annoy you every time. It's not the best solution, but it will remove the worst part. Since ViEmu 3 will sidestep the whole issue, I don't really want to invest too much effort in improving the current behavior, it will be difficult or impossible, and it will be work thrown away after the new version is released. If it's causing serious problems, though, I'll have to look into it, as ViEmu 3 is still a few months down the road.

Let me know how this works for you.

Best regards,



Re: ViEmu Keyboard Manager

Hi Jon,

When I first performed the steps in the previous post, I didn't take note of what bindings were populated on each side.  But now, after doing the whole thing over, both sides are re-populated like you see in the post below.

I think for now I will just disable the warning and wait for version 3.  I really haven't run into any trouble with the bindings as they are.  I will attempt the the steps for VS 2008 and see if that one works, however, and report back!




Re: ViEmu Keyboard Manager


Thanks for the detailed feedback. If you are not having any extra trouble, waiting for version 3 is probably the wisest thing to do. Let me know if anything else acts up, or if this causes some real annoyance.

Thanks and best regards,

  - Jon