Navigate back (Alt-Left) to previous cursor position on the same page for intra-page links

Use case or problem

Obsidian allows linking to a header or block on the same page. A common situation is having a TOC at the top of the page, linking to headers, or using links to blocks to jump between sections on the same page.

For a lot of situations it might actually be an anti-pattern to organize thoughts in long pages instead of having smaller chunks. But there are certainly use cases where one wants to repeatedly jump to certain sections on the same page, maybe going back and forth between the section and the TOC, or jump from one section to a “deeper” one on the same page, then go back an continue reading. In both cases I retain the “higher” context, either the TOC or the section from where I dive deeper and back up again.

Problem: In Obsidian Alt-Left (on Windows) navigates back to the previous page, not back to the cursor position on the same page from where the jump originated (e.g. a link in the TOC, or the link which points to a block id on the same page).

Proposed solution

With a web browser, navigating backwards takes me either to the previous page (as Obsidian does) or repositions the cursor on the same page, for jumps to anchors on the same page. It would be great if Obsidian showed the same kind of behaviour.

Current workaround (optional)

I use a plugin which remembers the cursor position, but it doesn’t help in this case. After navigating back with Alt-Left and navigating forward with Alt-Right, I am back at the intra-link target (e.g. the header I jumped to from the TOC).

Related feature requests (optional)

18 Likes

This is an old request, but one that I would very much like to see integrated.

+1

3 Likes

I was just about to file this as a bug, not a feature request. Rationale: this is the expected behavior from the forward/back navigation pattern on every major web browser.

Aside: There are myriad valid use cases for notes which extend “past the fold”, nothing anti-pattern about it. Even users being otherwise strict regarding note atomicity often have inbox/automation/clipping workflows that capture long form inputs to the otherwise atomic system.

I’ll argue that failing to maintain cursor position is essentially a failure to correctly save/restore the user history state, which is really what forward/back navigation is doing – not simply page-level navigation.

3 Likes

Adding my strong +1 here. Thanks!

I’ll also add links to this FR from a few historical bugs.

3 Likes

+1. I use header and block anchors extensively, even manually naming most of my inline block anchors. Not being able to quickly jump back to where I clicked the link is borderline infuriating.

3 Likes

@fschuhi Can you share the workaround plugin name?

Hello everyone, I am considering to create my own plugin if it still does not exist. Hit like to motivate me :sweat_smile:

4 Likes

Seems like there is already a community plugin: “Navigate Cursor History”
It tracks the cursor history and provides a shortcut for jumping back and forth.

3 Likes

Thanks. This is almost what I was looking for. It’s good for jumping around on a singe page – already a plus – but it doesn’t work well when flipping between pages. It seems to be looking for literal cursor positions, so if you skip through pages without going into a mode where you can place a cursor, the trail is lost.

Seems like chunks of it should be merged to the native obsidian page forward/back functions. So the combination will change “views” if what you see on the screen changes, whether or not there is a cursor. And if there is a previous cursor without changing the page, then it should move the cursor to the previous position on that page.

1 Like

also want this.

1 Like