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:
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.

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
Navigation History Control
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 Aheadremoves all entries after the current file position. -
Erase Behindremoves 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