Skip to main content
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:
ShortcutAction
Move cursor by character/line
Ctrl+← / Ctrl+→Move by word
HomeToggle between first non-whitespace character and column 0
EndMove to end of line
Ctrl+HomeMove to start of document
Ctrl+EndMove to end of document
PgUp / PgDnMove up/down by page
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:
1

Open Go to Line

Press Ctrl+G or open the command palette (Ctrl+P) and type :
2

Enter line number

Type the line number and press Enter
3

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.
ShortcutAction
Alt+←Navigate back in history
Alt+→Navigate forward in history

How Position History Works

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

Work normally

Edit files, jump to definitions, search for text, switch between files
2

Navigate back

Press Alt+← to return to your previous position
3

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:
ShortcutAction
Ctrl+Shift+0-9Set bookmark 0-9 at current position
Alt+0-9Jump to bookmark 0-9

Bookmark Workflow

1

Set bookmark

Position your cursor at an important location and press Ctrl+Shift+5 (for bookmark 5)
2

Work elsewhere

Navigate to other parts of the file or even other files
3

Jump back

Press Alt+5 to instantly return to bookmark 5
4

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

Position cursor

Place your cursor on an opening or closing bracket: (, ), {, }, [, ]
2

Open command palette

Press Ctrl+P and search for “Go to Matching Bracket”
3

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:
ShortcutAction
F8Jump to next error/diagnostic
Shift+F8Jump to previous error/diagnostic
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

1

Open large file

Fresh automatically detects large files and uses byte offset mode
2

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
3

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

1

Create split

Open command palette and select “Split Vertical” or “Split Horizontal”
2

Open files

Each split can have its own file (or the same file for comparison)
3

Navigate between splits

Use “Next Split” / “Previous Split” or click with the mouse
4

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.

Scroll Sync

When viewing the same buffer in multiple splits, you can synchronize scrolling:
1

Open same file in splits

Create a split and open the same file in both panes
2

Enable scroll sync

Open command palette and search for “Toggle Scroll Sync”
3

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
1

Position cursor

Place cursor on a function name, variable, type, etc.
2

Open command palette

Press Ctrl+P and type > to enter command mode
3

Search for command

Type “Go to Definition” or “Find References”
4

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

Open command palette

Press Ctrl+P (opens in file finder mode by default)
2

Type to search

Type parts of the filename — space-separated terms match independently
3

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:
ShortcutAction
Ctrl+BToggle file explorer visibility
Ctrl+ESwitch focus between file explorer and editor
/ Navigate up/down in file tree
EnterOpen selected file (keeps focus on explorer)
Double-clickOpen file and focus editor
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.
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

Build docs developers (and LLMs) love