Visual Studio Key Bindings : why do we do change them?


Every new release of Visual Studio comes with changed key bindings. Excuse me, “better” key bindings, as the designers would have you believe.

I don't buy it. I still use the VC2 key binding set, because for me F8 is Step Into. We should never have switched to F11, and the person who made this call (Jim, why don't you have a blog?) has been admitting that was a huge mistake for a few years now. I am almost alone among the debugger team for still using F8, but I will continue to do so while the key continues to exist on my keyboard.

I was prompted to post this from recent VS 2005 beta usability testing where several users were complaining about this, and one even thought the product was broken because 'it didnt work' due to the binding changes.

What do you, the users, really think? Should we change the key bindings to make them better, or should we just leave them well alone? We do at least allow you to switch to older, 'classic' sets, which even includes Brief nowadays, and you can fully customize the keys if you have the inclination. Its the default behavior that bugs me.

Comments (24)

  1. Darrell says:

    Change them to make them better, but always let us pick a previous version or customize our own set and save them.

  2. Eric Wilson says:

    Don’t change them. My thoughts is that when you say "for the better", you really just mean, "some developer on the team likes it this way, so we changed it". There is no real/worse in terms of keyboard bindings, so just pick something and stick with it. (I don’t mean that really; There are of couse WORSE bindings. You could try to change ctl+c to something other than copy for example:( But the bindings that exist in the current product are fine as is).

    For example, in VS.NET the build key changed from F7 to ctl+atl+b. I’ve never come up with a reasonable explaintion for why. If your developers need something to do, have them bind the "Go back" command in VS.NET to my third mouse key like in IE:)

  3. xge says:

    Imagine what the world would be like if every year the keyboard key arrangement ‘improves’ and users can also switch to the previous version.

    Someone else’s keyboard would be like a encryption machine to me then.

  4. Make possible to step into string.Join (or any other BCL class method) and put the default binding to anything you like

  5. Geoff Appleby says:

    I don’t think it really matters. So long as i can easily find out what they are, and i can customise whatever i’m not happy with, then it’s all sorted.

    I personally detest the multi-key bindings, like the ctrl-k series. So i override them with something that’s easier to press. So as a result, the comment selection (ctrl-k, ctrl-c) becomes F4, and uncomment (ctrl-k, ctrl-u) becomes shift-F4. Compile current project is F2. I’m happy enough with just being able to do that – whether it’s F8 or F11 for stepping doesn’t matter, it’s still only one keypress.

    –Geoff

  6. Scott Allen says:

    Could you define better? I was completely puzzled as to why the "Build" key mapping changed to Ctrl+Shift+B moving from VS6 to VS7. To me, that was a step backward 🙂 I’m still curious what the reasoning was behind that?

  7. anon says:

    I was under the impression that the most recent iteration of key combos is a mix of classic VB and VC defaults. Is this the case?

  8. Carole Snyder says:

    re, Geoff comments above, I have a new love for mult-key bindings, that came from working with VS.NET. I believe it’s a vast improvement from using Control+Shift together, and even Control+Alt, which I find a nuisence. I try not to mess with the most common commands. For instance, F4 is Properties, and always will be.

    Coincidentally, I recently went through this last winter, when I noticed the shortcuts had radically changed with a new build of our product. At the time it really bothered me, but soon after, I realized that the new shortcuts were easier and more logical, albeit harder to remember. Now that I’m banished to an earlier version for personal use, I miss the new and improved shortcuts.

    Luckily, VS.NET allows you to assign your own shortcuts…but, when it’s a major change, probably no one bothers.

  9. I was one of those users in the usability test complaining (and hastily I fired a bug when show whitespace didn’t work… duh).

    When they explained to me that the C# profile bindings were changing because they were going to end up better overall, I was very happy. I don’t mind having to learn something new, so long there’s a REAL benefit and it’s not just for fun.

    The big thing is letting users know WHY. Otherwise they’ll just complain to no end about how MS tries to maliciously break things <g> — and they won’t get any benefit from the change.

  10. I am using VC2 mappings as well as Ctrl+Ins for copy, Shift+Ins for paste and Shift+Del for cut. I dread the day Windows stops supporting them. Long live Windows 2.0!

    And I use numpad for arrows.

  11. Stu Smith says:

    (Comments based on VC7 / 7.1 so if fixed in Whdbey then nevermind).

    Ctrl-Shift-B is just weird — compile is one of the most common operations you do, so F7 is much better.

    Personally I like the multi-key sequences Ctrl-K Ctrl-whatever) for operations you might use once or twice a day (comment/uncomment block). They’re much easier to type than a Ctrl-Shift, and much easier to remember.

    One specific gripe is build project, Alt-B-U. Given that VS doesn’t stop after the first failing project, this one starts to be used a fair amount on a large solution. So I’d say it deserves a simpler default key binding.

    I think that the defaults do have to be 99% correct — if too many developers feel they’re forced to change them, when you go to a different developer’s machine to help out you find that nothing works.

    And while I’m on the subject, why isn’t the keyboard mapping dialog resizable? It shows only 4.5 lines of commands, and has a horizontal scrollbar.

  12. Ron says:

    anon: "I was under the impression that the most recent iteration of key combos is a mix of classic VB and VC defaults. Is this the case?"

    Not to my view, but perhaps I just didn’t use that many key bindings in VB6. For example, VB6 still used F8 as Step Into.

    Stu: "I think that the defaults do have to be 99% correct…"

    I would agree with the caveat that 99% actually refers to the most common actions (subjective, I know). I guess it really depends on what’s changing.

  13. Christian Harlass says:

    Please make sure provide the old key bindungs too. I have to work with both VC6 and VC7 – would drive me totally mad to learn every few hours/days the other schema again.

    How about showing a list of available commands when hitting the first key of a multi-key command (such as Ctrl-K) ?

  14. joen says:

    I was responsible for the new keyboard bindings for C# in VS 2005 and I’ve come out of hiding :-).

    I posted a blog that describes the throught process behind it if you are interested.

    http://blogs.msdn.com/joen/archive/2004/06/10/153245.aspx

  15. You should break key bindings only when you change the environment completely.

    I accept changing key bindings from VS6 to VS7, since it’s a whole new era, with .NET combining VB, VC, and the rest of the tools in VS6.

    When Microsoft invents the next thing, I would accept key binding changes.

    If you want to make the key bindings better, change them, but let the user change them back. New users could use the new scheme, and old users could use the old scheme.

    And I’d like to hear exactly why it’s better this way than the way it used to be.

  16. Keith Wedinger says:

    Offer export/import of settings!!!! When I do decide to move from VS.NET 2003 to 2005, I must resort to registry trickery and moving files around under "Documents and Settings" to keep my configuration.

    If I can export/import my current settings, you could change the defaults to whatever you like and I would not care less because I would be able to get my desired settings via import.

  17. onurbyk says:

    i get the term "for the better". i think developers are not as forward compatible as programs. And visual studio is not on early times. we’re talking about version 8. It will be hard but it will be.

    by the way, is there a tool for migrating vs customization settings among computers?

  18. Orion Adrian says:

    I would also like a tool to do Import/Export of settings, however I’d like the reverse. I’d like to be able to export the settings from 2005 and import them into 2003.

    Orion Adrian

  19. Rik Heywood says:

    Leave the key bindings alone, provide backwards compatibility and improve the UI for changing key bindings so it isn’t so painful to do.

    Ctrl+Alt+B – What the hell was that! I got serious RSI because of that until I changed it back to F7.

  20. Don Griffin says:

    Changing the default key bindings forces people into fragmented groups with incompatible bindings. Once a key is bound to a function, it should NEVER be changed unless that function is removed from the product. As it sits, half the developers in our team cannot drive the other half’s IDE because of this constant state of change. Some have VC6 binds, others older and others keep with the defaults.

    Bottom line: there is no such thing as a "better" key binding. The good/bad-ness of these arbitrary choices are all in the eye of the beholder. What one person uses all the time, another may never use (like myself vs. the .NET IDE default binding for F7). So, one should replace the fruitless search for "better" with the fully possible search for "consistent". Relearning or reconfiguring (even if the dlg were made useable) is a COMPLETE WASTE of everyone’s time and energy.

  21. GregM says:

    As long as I can export my emacs-based keybindings from VC6 into whatever, I will be happy. I still don’t have all my VC6 bindings up and running in 7.1, because it takes so long to find them, especially since they got rid of the very useful grouping of commands, and forced you into searching. (one of many 7.1 annoyances, along with removing the column select mode, which I use many times per day in VC6, and no, the replacement is nowhere near the same.)

  22. Pompous Guy says:

    Regarding key bindings. You MUST do [whatever it is I want you to do] because [flimsy reason].

    Please IMMEDIATELY carry out my orders.

Skip to main content