Using the jumplist

To help with quick navigation, Helix maintains a list of "jumps" called the jumplist. Whenever you make a significant movement (see next section), Helix stores your selections from before the move as a jump. A jump serves as a kind of checkpoint, allowing you to jump to a separate location, make edits, and return to where you were with your previous selections. This way, the jumplist tracks both your previous location and your selections. You can manually save a jump by using Ctrl-s. To jump backward in the jumplist, use Ctrl-o; to go forward, use Ctrl-i. To view and select from the full jumplist, use Space-j to open the jumplist picker.

What makes a jump

The following is a non-exhaustive list of which actions add a jump to the jumplist:

  • Switching buffers
    • Using the buffer picker, going to the next/previous buffer
    • Going to the last accessed/modified file
    • Making a new file (:new FILE)
    • Opening a file (:open FILE)
      • Includes :log-open, :config-open, :config-open-workspace, :tutor
    • Navigating by pickers, global search, or the file explorer
    • goto_file (gf)
  • Big in-file movements
    • select_regex (s)
    • split_regex (S)
    • search (/)
    • keep_selections and remove_selections (K and <A-K>)
    • goto_file_start (gg)
    • goto_file_end
    • goto_last_line (ge)
    • :goto 123 / :123 / 123G
    • goto_definition (gd)
    • goto_declaration (gD)
    • goto_type_definition (gy)
    • goto_reference (gr)
  • Other
    • Ctrl-s manually creates a jump
    • Trying to close a modified buffer can switch you to that buffer and create a jump
    • The debugger can create jumps as you jump stack frames