8 Resharper shortcuts everyone should know

By Vladimir Khorikov

If you use Resharper, you must have been using some (or maybe most) of its features already. But what I see a lot is that some really useful features are left unattended. I want to describe those lesser known yet very useful features that can help you in your day-to-day work.

1. Move up/down/left/right

Moving methods and properties up and down helps organizing code a lot. It becomes really helpful if you get used to it: at some point in the future, you won’t be able to even imagine how to code without this feature:

Resharper shortcuts: Move method

Move method

Resharper shortcuts: Move property

Move property

Not only does it work on the class level, but it also helps to move statements inside a method:

Resharper shortcuts: Move statement

Move statement

And even in the method’s declaration:

Resharper shortcuts: Changing method signature

Changing method signature

The only problem with this feature is that by default it’s mapped to very unhandy shortcuts – Ctrl + Shift + Alt + Up/Down/Left/Right – which makes it almost completely unusable.

To fix it, I have remapped it to Alt + Up/Down/Left/Right. With this change, the feature became #1 assistant in my Resharper arsenal.

To change the mappings, go to Tools -> Options -> Environment -> Keyboard and filter the commands by “ReSharper_MoveUp”, “ReSharper_MoveDown”, “ReSharper_MoveLeft”, “ReSharper_MoveRight” keywords. You need to assign the shortcuts for both Text Editor and Global contexts:

Changing keyboard settings in VS

Changing keyboard settings

2. Go to next/previous member

This is another feature I use a lot while coding. It allows you to jump to the next or previous method in the class and is especially useful in conjunction with the previous one:

Resharper shortcuts: Go to method

Go to method

However, by default, it is bound to Alt + Up/Down keys we just used for moving code up and down, so I rebound it to Ctrl + Up/Down shortcuts.

If you think of it a little bit, such binding starts making more sense then the default one. In Windows, Alt key is usually used for altering something, whereas Ctrl key – for jumping to some distant piece of interface.

To change the mappings, go to keyboard settings (Tools -> Options -> Environment -> Keyboard) and filter commands by “ReSharper_GotoNextMethod” and “ReSharper_GotoPrevMethod” keywords.

3. Go to next/previous error in the solution

Another invaluable feature is Go to Next/Previous error. It allows you to quickly iterate through all compiler errors in the current solution:

Resharper shortcuts: Go to error

Go to error

Just as with previous two features, the default key bindings for it is rather unhandy (Shift + Alt + PageDown/PageUp in Visual Studio scheme and Alt + F12 / Shift + Alt + F12 in IDEA scheme), so I changed the bindings to Ctrl + Shift + Down/Up.

To do it, filter the commands by “ReSharper_GotoNextErrorInSolution” and “ReSharper_GotoPrevErrorInSolution” in the keyboard settings.

4. Go to containing method/class

The fourth feature I encourage you to use (if you aren’t already) is Go to Containing Method/Class:

Resharper shortcuts: Go to containing method/class

Go to containing method/class

It allows you to navigate to the method which the current line of code belongs to. Or to the parent class if the selected line doesn’t belong to any method (or a method name is selected).

The default binding is Ctrl + [, and, unlike the previous default shortcuts, this one fits it perfectly.

5. Select containing method/class

Number 5 useful Resharper feature is Select Containing Method/Class, which is accessible by Ctrl + Shift + [.

It is much the same as the previous one but instead of navigating to the containing method it allows us to select it. And if you want to select the whole class, just press Ctrl + Shift + [ twice:

Resharper shortcuts: Select containing method/class

Select containing method/class

6. Go to recent edits

Ability to see all the recent edits is very useful if you are lost in the source code and want to go back to the previously edited code:

Resharper shortcuts: Go to edits

Go to edits

The default mapping for this feature is Ctrl + Shift + Comma in Visual Studio scheme and Ctrl + Shift + Alt + Backspace in IDEA scheme. To me, Visual Studio version is fine, but if you use IDEA scheme, you might want to change the bindings to Ctrl + Shift + Comma or any other shortcut you find suitable.

To change it, filter the commands in the Keyboard settings window by “ReSharper_GotoRecentEdits” keyword.

There’s also another similar feature which allows you to go to the last edit location (Ctrl + Shift + Backspace), but I found myself using it quite rarely as the Go to Recent Edits feature covers all the use cases this feature may address.

7. Locate in solution explorer

This is another must-have feature which allows you to locate the current class in the solution explorer:

Resharper shortcuts: Locate file in Solution Explorer

Locate file in Solution Explorer

The default binding for it is Shift + Alt + L.

8. Surround with curly brackets

The last lesser know tip I recommend you to be armed with is ability to quickly surround any line of code with curly brackets.

To do it, select a line (or several lines) of code and press Alt + Enter. In most cases, the required option will be the first in the list, so all you’ll need to do is press Enter button again:

Resharper shortcuts: Surround line with curly brackets

Surround line with curly brackets

8 Resharper shortcuts everyone should know: PDF file

Wrapping all said, I’ve created a small PDF file I hope will be helpful to remember the features we discussed today: link to PDF file

Most of its content intersects with the existing Keymaps PDF JetBrains introduced:

But I have changed the mappings to comply with the shortcuts we set in this article.

Summary

These 8 features, in conjunction with other well known Resharper shortcuts, have given me a huge productivity boost. I hope it will help you as well.





  • Mario Sannum

    Great post!

    Just to clarify for others, in R# 9, “resharper_gotonexterror” and “resharper_gotopreverror” is actually “ReSharper_GotoNextErrorInSolution” and “ReSharper_GotoPrevErrorInSolution”.

    • http://enterprisecraftsmanship.com/ Vladimir Khorikov

      Yeah, I actually shortened it, but you are right, it is more convenient to write it this way.
      Updated the post, thank you!

  • pawelek

    Go to last cursor position Ctrl + -/Ctrl + +.

    • http://enterprisecraftsmanship.com/ Vladimir Khorikov

      Yeah, that is a must-have shortcut as well, but it’s a Visual Studio’s one.

  • David Hollinshead

    A nice list although you don’t need “Locate in solution explorer” if you have Tools->Option->Projects and Solutions->”Track Active Item in Solution Explorer” ticked.