VS Code Extensions
Simple Navigation History

Simple Navigation History

by MarkSamios

Tracks the files you visit and provides simple back and forward navigation through your file history.

Downloads

0

Rating

(0)

Version

0.1.9

Last updated

Jul 27, 2026

Simple Navigation History

A simple file navigation history that tracks visited files and provides back and forward navigation without cursor location history. History is maintained per editor group, duplicate files are eliminated, and entries ahead of or behind the current position can be cleared to keep navigation focused.


Support This Project

If you find this extension useful, you can support development via PayPal: PayPal Thank you for helping keep this extension maintained and improving!


Demo

In the following demonstration I access 3 files in sequence and then I click the pre-assigned back button to navigate backwards and then again forward.

Simple Navigation History Demo

The same operation is repeated for the 2nd group.


Functionality

File order tracking

The extension keeps the navigation chain based on the order of visited files. For example visiting FileA → FileB → FileC then open FileD, the chain becomes FileA → FileB → FileD → FileC

The previous forward entries are preserved. Opening a new file inserts it after the current position rather than discarding the remaining history.

Duplicate filtering

A file can only appear once in the history chain for an editor group.

For example if the current chain is: FileA → FileB → FileC → FileB accessing FileB again will become FileA → FileC → FileB

The existing entry is moved to the current navigation position instead of creating a duplicate.

Closed files

When a tracked file is closed, it is automatically removed from the navigation history.

For example assume the current chain is: FileA → FileB → FileC

After closing FileB the chain becomes FileA → FileC

The history only contains files that are still available in the editor group.

In addition to Back and Forward navigation, the extension lets you trim the navigation history around the current position.

  • Erase Ahead removes all entries after the current file position.

  • Erase Behind removes all entries before the current file position.

This is useful when you want to discard an old navigation path and continue working from the current location.

Editor Group Support

Navigation history is maintained separately for each VS Code editor group. Each editor group has its own independent navigation chain.

Example:

Group 1: FileA → FileB → FileC

Group 2: FileX → FileY → FileZ

Using Back or Forward in Group 1 only navigates through Group 1 history. Group 2 keeps its own separate history and is not affected. This allows multiple editor layouts to maintain independent navigation paths.

⌨️ Keybindings

The extension provides Back and Forward navigation commands that can be customized.

Open:

File → Preferences → Keyboard Shortcuts

Search for: Simple Navigation History

Action Shortcut
Back Ctrl + Numpad /
Forward Ctrl + Numpad *
Erase Ahead Ctrl + Numpad +
Erase Behind Ctrl + Numpad -

These shortcuts can be customized.

Open:

File → Preferences → Keyboard Shortcuts

Search for:

Simple Navigation History

You can assign your preferred shortcuts to any of the extension's commands.

The extension does not require specific default shortcuts and can be configured to match your existing keyboard or mouse navigation setup.

🖱️ AutoHotKey Mouse Connecting (Optional)

VS Code does not provide direct keybinding support for mouse Back and Forward buttons (XButton1 / XButton2) in extensions.

If you want to use your mouse buttons for navigation, you can map them to the extension keyboard shortcuts using a tool such as AutoHotkey.

Example AutoHotkey v2 configuration:

#Requires AutoHotkey v2.0

global appList
appList.Push({ procName: "code.exe", lockKeys: ["CapsLock", "NumLock"] })

#HotIf WinActive("ahk_exe code.exe")
; Plain mouse buttons → VS Code shortcuts
XButton1:: Send("^{NumpadDiv}")
XButton2:: Send("^{NumpadMult}")

; Prune history
^XButton1:: Send("^{NumpadSub}")
^XButton2:: Send("^{NumpadAdd}")

#HotIf

🧾 License

GNU General Public License (GPL) v3

Related extensions