So who would have thought that keybindings would have been a contentious issue? J Thanks for all the great comments and ideas, I’ll work with our core editing team to see what we can incorporate for VS 2005.

Reading through all the comments and the original blog entry I see that I buried a crucial piece of information:

But while we think the new keybindings are a lot more logical and easier to learn we totally understand that people don’t like gratuitous changes and want to be able to use that muscle memory they have developed. So what we are going to do is make as many of the old keybindings available as well (the new ones will be shown by default but the olds ones will also work).

While we haven’t done the calculations yet I fully expect that 90 to 95% of the keybindings that you use in VS 2002 and 2003 will work as expected in VS 2005 when you choose the C# Profile.

Using the commands from the last blog entry you could access them via two sets of keybindings (VS allows multiple key combinations to be bound to a single command):

  • Solution Explorer  Ctrl+Alt+L      Ctrl+W, S       
  • Class View         Ctrl+Shift+C    Ctrl+W, C
  • Server Explorer    Ctrl+Alt+S      Ctrl+W, L
  • Resource View      Ctrl+Shift+E    Ctrl+W, E
  • Properties Window  F4              Ctrl+W, P
  • Object Browser     Ctrl-Alt-J      Ctrl+W, J
  • Toolbox            Ctrl-Alt+X      Ctrl+W, X
  • Breakpoints        Ctrl+Alt+B      Ctrl+D, B
  • Autos              Ctrl+Alt+V, A   Ctrl+D, A
  • Call Stack         Ctrl+Alt+C      Ctrl+D, C
  • Threads            Ctrl+Alt+H      Ctrl+D, T

Using multiple keybindings allows:

  1. Existing developers retain their existing keybindings and muscle memory
  2. New and existing developers can learn commands more easily and have an overall more consistent keyboard experience.

I’m not sure whether this changes people’s opinions and I apologize for not making clear that the majority of your existing keybindings will continue to work.

I get the impression that we should just scrap this entire idea and simply keep the old keybindings. For new commands in VS 2005 (e.g. refactoring) we should just attempt our best to find logical keybindings in the available spaces (Although I would hate to lose Ctrl+R, R for Refactor.Rename because that keybinding is already taken by Edit.ToggleWordWrap!).

The consequence of this is that new C# developers will have to learn an apparently random set of key bindings but hey perhaps that’s just “paying their dues”.

Some small notes on the numerous comments from the previous blog entry:

  • There will be numerous “old” keybindings available in VS 2005: VC2, VC6, VS2002, VS 2003 etc
  • VS 2005 will allow you to save all your IDE settings into one file which you can then import into an version of VS. Unfortunately there are no current plans to import VS 2002 and VS 2003 settings.
  • I didn’t just dream these changes up J. I worked with our usability team to work on this problem and through most of our usability studies have had the new keybindings in place.
  • Don can continue to program for the next 24 years without worrying.