I find that for the actual writing of code, keyboard efficiency really doesn't matter at all.
Navigation and refactoring are where efficiency becomes huge. I think most of what I type into an IDE isn't actually code, it's navigating without a mouse (Find in files, go to declaration, back/forward, search for a type, etc.). The thing is most of these operations have in common is they're working with a symbol table or an abstract syntax tree though. This is why I like (good) IDE's over text editor's like vim and emacs -- I rarely need to be super efficient writing within one file, I need a program that can understand and parse an entire project. I also don't need my keyboard shortcuts to be super efficient (I don't particularly care if they drag me off the home row or involve multiple modifiers), I just need them to have a high multiplier effect in terms of my time.
Honestly I think the most useful keyboard shortcut I use is also the most vague: alt-enter in resharper/intellij. It's basically just "show me the most obvious transforms in this particular context". So it might transform a type declaration to "auto", or convert a for-loop to a foreach or vice versa.
Navigation and refactoring are where efficiency becomes huge. I think most of what I type into an IDE isn't actually code, it's navigating without a mouse (Find in files, go to declaration, back/forward, search for a type, etc.). The thing is most of these operations have in common is they're working with a symbol table or an abstract syntax tree though. This is why I like (good) IDE's over text editor's like vim and emacs -- I rarely need to be super efficient writing within one file, I need a program that can understand and parse an entire project. I also don't need my keyboard shortcuts to be super efficient (I don't particularly care if they drag me off the home row or involve multiple modifiers), I just need them to have a high multiplier effect in terms of my time.
Honestly I think the most useful keyboard shortcut I use is also the most vague: alt-enter in resharper/intellij. It's basically just "show me the most obvious transforms in this particular context". So it might transform a type declaration to "auto", or convert a for-loop to a foreach or vice versa.