Tuesday, February 26, 2008

You might argue both, but that's beyond the point :-) I've been thinking lately about how different programmers get their work done. If you look over the shoulders to 3 programmers, none of them is working the same way. The first difference I tend to notice is the use of keyboard shortcuts. Personally I've always been a fan of shortcuts, especially in development environments like Visual Studio, but also general shortcuts in Windows or other applications. For instance I never do File -> Open. I always use ctrl -> O and it always annoys me when a program does not support the most common shortcuts. However, I still feel I can learn and use more of them.

We can divide developers into three groups related to the above:

  1. Love the mouse and rarely use shortcuts
  2. Use mouse often, but use shortcuts for the most common actions
  3. Use the mouse only when there's no shortcut for the action.

I think I can put myself in category 2 and I'm not sure if I want to or are able to be in category 3. One important aspect to consider before I dig myself to deep into this, is that you don't necessarily produce better software by using a lots of shortcuts (obviously). However I'm quite sure that a developer in group 3 produce code faster than a group 1 developer. But one can argue (if you're a bit extreme) that the quality of the code produced by group 1 is better, because they get more time to think :-) But seriously you can't use this type of groupings for defining developers, but in general I think many developers could benefit from using more shortcuts.

Here are the most common shortcuts in Visual Studio 2005 as I see it:

Builds    
Ctrl+B, Ctrl+S Build BuildSelection
Ctrl+Shift+B Build BuildSolution
Ctrl+Break Build Cancel
     
Debugging    
F5 Debug Start
Ctrl+F5 Debug StartWithoutDebugging
Shift+F5 Debug StopDebugging
F10 Debug StepOver
F11 Debug StepInto
Ctrl+F10 Debug RunToCursor
Shift+F11 Debug StepOut
Ctrl+Shift+F10 Debug SetNextStatement
F9 Debug ToggleBreakpoint
Ctrl+Shift+F9 Debug DeleteAllBreakpoints
     
Navigation    
F12 Edit GoToDefinition
Ctrl+F12 Edit GoToDeclaration
     
Other    
Shift+Alt+Enter View FullScreen
Ctrl+Shift+F12 View NextError
Ctrl+Alt+P Tools AttachtoProcess
Shift+Alt+A Project AddExistingItem
Ctrl+K, Ctrl+M Edit GenerateMethodStub

You probably know where and how already, but if you go to Tools -> Options -> Keyboard in Visual Studio you can define your own shortcuts. This is a great feature of Visual Studio that let you create custom shortcuts for almost every action you can do with a mouse. You can either change an existing shortcut or define new ones. Here's a screenshot of the shortcut dialog in VS:

image

Commands are displayed alphabetically after some type of menu structure (e.g. Edit.Copy), though there a many more commands than you can find in the menu. This list is of course populated dynamically which means you'll find commands for 3rd party VS plugins like e.g. ReSharper. One thing to be aware of though is existing shortcuts. If you for instance want to have the shortcut Ctrl+V, Ctrl+A, you will override the Ctrl+V command for Paste, which is probably not what you want.

All comments require the approval of the site owner before being displayed.
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview