Fresh provides powerful navigation features to help you move quickly through your codebase, whether you’re working with small files or multi-gigabyte documents.
Basic Navigation
Cursor Movement
Navigate through your code with these essential shortcuts:
The Home key is “smart” — it toggles between the first non-whitespace character and column 0, making indented code navigation more efficient.
Go to Line
Jump directly to any line number:
Open Go to Line
Press Ctrl+G or open the command palette (Ctrl+P) and type :
Enter line number
Type the line number and press Enter
Jump
The cursor moves to the beginning of that line
Command Palette Shortcut : Type : in the command palette (Ctrl+P) to quickly access Go to Line mode.
Position History
Fresh automatically tracks your cursor positions as you navigate and edit, allowing you to move backward and forward through your navigation history — similar to a web browser.
How Position History Works
When is a position recorded?
Fresh records your position in these scenarios:
When you jump to a different location (go to definition, search results, etc.)
When you move more than a few lines away from your current position
When you switch to a different file
When you make an edit
This ensures the history contains meaningful navigation points, not every arrow key press.
Work normally
Edit files, jump to definitions, search for text, switch between files
Navigate back
Press Alt+← to return to your previous position
Navigate forward
Press Alt+→ to move forward in history
Position history works across files — you can navigate back to a position in a different file.
Bookmarks
Set bookmarks to quickly jump between important locations in your code:
Bookmark Workflow
Set bookmark
Position your cursor at an important location and press Ctrl+Shift+5 (for bookmark 5)
Work elsewhere
Navigate to other parts of the file or even other files
Jump back
Press Alt+5 to instantly return to bookmark 5
List bookmarks
Use “List Bookmarks” from the command palette to see all set bookmarks
Advanced Bookmark Commands
Access these from the command palette (Ctrl+P):
Set Bookmark Set a bookmark at the current cursor position (prompts for 0-9)
Jump to Bookmark Jump to a previously set bookmark (prompts for 0-9)
List Bookmarks View all bookmarks across all open files
Bookmarks are saved in your workspace session and persist when you close and reopen Fresh.
Bracket Navigation
Quickly jump between matching brackets, braces, and parentheses:
Position cursor
Place your cursor on an opening or closing bracket: (, ), {, }, [, ]
Open command palette
Press Ctrl+P and search for “Go to Matching Bracket”
Jump
The cursor jumps to the matching bracket
Matching brackets are highlighted automatically when your cursor is near them. You can disable this with the highlight_matching_brackets setting.
Error Navigation
When working with LSP-enabled languages, quickly jump between errors and diagnostics:
Error navigation requires an active LSP server. See the LSP Configuration guide for setup instructions.
Large File Navigation
Fresh handles large files (multi-gigabyte) with minimal memory overhead. When you open a large file, Fresh shows byte offsets instead of line numbers for performance.
Working with Large Files
Open large file
Fresh automatically detects large files and uses byte offset mode
Scan for line numbers (optional)
If you need exact line numbers, use “Go to Line” from the command palette — Fresh will offer to scan the file
Wait for scan
Only the line index is kept in memory, not the file contents. Over SSH, the scan runs server-side.
You can manually trigger line scanning with “Scan Line Index” from the command palette.
Split Views
Work with multiple files (or the same file) side-by-side:
Split View Commands
All split commands are available from the command palette (Ctrl+P):
Split Vertical Create a vertical split (side-by-side panes)
Split Horizontal Create a horizontal split (top and bottom panes)
Next Split Move focus to the next split pane
Previous Split Move focus to the previous split pane
Close Split Close the current split pane
Toggle Maximize Maximize/restore the current split pane
Split View Workflow
Create split
Open command palette and select “Split Vertical” or “Split Horizontal”
Open files
Each split can have its own file (or the same file for comparison)
Navigate between splits
Use “Next Split” / “Previous Split” or click with the mouse
Close when done
Use “Close Split” to remove the current pane
Comparing Changes : Open the same file in both splits to compare different sections or edits.
When viewing the same buffer in multiple splits, you can synchronize scrolling:
Open same file in splits
Create a split and open the same file in both panes
Enable scroll sync
Open command palette and search for “Toggle Scroll Sync”
Scroll together
Both panes now scroll in unison
Scroll sync only works when the same buffer is open in multiple splits. Each split maintains its own cursor and fold state.
LSP-Powered Navigation
When working with LSP-enabled languages, you get IDE-level navigation:
Go to Definition Jump to where a symbol is defined
Find References Find all usages of a symbol
Go to Type Definition Jump to the type definition of a symbol
Go to Implementation Find implementations of an interface or trait
Position cursor
Place cursor on a function name, variable, type, etc.
Open command palette
Press Ctrl+P and type > to enter command mode
Search for command
Type “Go to Definition” or “Find References”
Navigate
Fresh jumps to the definition or shows a list of references
LSP navigation requires a language server. See LSP Configuration for supported languages and setup.
Fuzzy Finding
Quickly find and open files with fuzzy matching:
Open command palette
Press Ctrl+P (opens in file finder mode by default)
Type to search
Type parts of the filename — space-separated terms match independently
Select and open
Use arrow keys to select a file and press Enter to open it
Fuzzy Matching Example : Typing feat group matches features/groups/view.tsx because both “feat” and “group” appear in the path.
See the Command Palette guide for more details.
File Explorer Navigation
Browse your project structure with the built-in file explorer:
The file explorer respects your .gitignore file by default. Use “Toggle Gitignored Files” from the command palette to show ignored files.
See the File Explorer guide for detailed usage.
Navigation Tips
Combine navigation methods for efficiency
Use position history (Alt+←) after jumping to definitions or search results to quickly return to where you were. Set bookmarks at key locations before exploring unfamiliar code.
Open documentation or related code in a split while working in the main pane. This is especially useful when implementing interfaces or following patterns from existing code.
The fuzzy file finder (Ctrl+P) is often faster than navigating the file tree. Just type a few characters of the filename.
Command Palette Quick access to all commands and files
File Explorer Browse your project structure
LSP Features IDE-level code intelligence