MonoDevelop Tips: Navigation History

MonoDevelop keeps track of your navigation history, like a web browser. If you jump to another file or another position inside the same file, you can easily navigate back. This is particularly useful combined with MonoDevelop's other code navigation features that make it easy to jump around your code, such as the "Go to definition" command and the Navigate To dialog. The Navigation History can get you back to wherever you were before.

To navigate back, use Ctrl-Alt-Left on Window or Linux, or Cmd-Opt-Left on a Mac. To navigate forward, use Ctrl-Alt-Right on Window or Linux, or Cmd-Opt-Right on a Mac.

These commands are also found in the Search menu, along with the Navigation History list, which shows a list of the last fifteen locations, and allows you to jump directly to any of them. Internally it keeps more history than this, but menu space is limited.

The Navigation History menu

The commands are also found in the Navigation toolbar.

The Navigation History toolbar

Navigation points are created whenever you use a command that navigates directly to something, such as opening a file, going to a definition, and so on. If you manually move the caret around a file and stay in one area for more than about 10 seconds, it may also log a navigation point there.


Awesome feature.

One thing I've always wanted to do is to be able to have the file tabs also work like web browser tabs.

I.e. when I navigate from foo.cs to bar.cs, a new bar.cs tab wont be added to the documents tab strip, it will just navigate and change the title of the current foo.cs tab to bar.cs.

And add a keyboard shortcut for opening new tabs. And possibly allow a keyboard modifier + navigate to, so that you can navigate to and open in a new tab.

Or perhaps I'm talking about a feature that already exists?

That's actually an idea I've been pushing internally in the MD team since I first saw Xcode 4 last July. I don't like everything Xcode does, but the browser-like navigation is definitely nice. I still need to convince some people before we can make it happen.