共用方式為


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

  • Anonymous
    June 17, 2004
    Change them to make them better, but always let us pick a previous version or customize our own set and save them.
  • Anonymous
    June 17, 2004
    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:)
  • Anonymous
    June 17, 2004
    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.
  • Anonymous
    June 17, 2004
    Make possible to step into string.Join (or any other BCL class method) and put the default binding to anything you like
  • Anonymous
    June 17, 2004
    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
  • Anonymous
    June 17, 2004
    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?
  • Anonymous
    June 17, 2004
    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?
  • Anonymous
    June 17, 2004
    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.
  • Anonymous
    June 17, 2004
    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.
  • Anonymous
    June 17, 2004
    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.
  • Anonymous
    June 17, 2004
    (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.
  • Anonymous
    June 17, 2004
    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.
  • Anonymous
    June 18, 2004
    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) ?
  • Anonymous
    June 18, 2004
    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
  • Anonymous
    June 18, 2004
    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.
  • Anonymous
    June 18, 2004
    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.
  • Anonymous
    June 18, 2004
    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?
  • Anonymous
    June 19, 2004
    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
  • Anonymous
    June 22, 2004
    The comment has been removed
  • Anonymous
    June 22, 2004

    Knowing .NET
  • Anonymous
    June 28, 2004
    The comment has been removed
  • Anonymous
    August 03, 2004
    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.)
  • Anonymous
    November 29, 2007
    Regarding key bindings. You MUST do [whatever it is I want you to do] because [flimsy reason]. Please IMMEDIATELY carry out my orders.