sessions.nvim
Branch- and project-aware Neovim sessions. The session name resolves from the project root and the current git branch, so switching branches restores a different workspace and you never have to name anything. Built on Neovim's own :mksession and :source, not around them. Optionally also a mark list — files jumped to by number, with pins and remembered cursor positions — for the handful of files you want one keypress away in every project.
- status
- beta — Beta stage — active development. This repository is past its first shape and in active use, but the surface is not frozen: breaking changes are still possible. Pin a commit or tag if you depend on it.
- category
- Files & navigation
- neovim
- 0.9+
- repo
- github.com/StefanBartl/sessions.nvim
- commits
- 156
- help
- :help sessions
demo
demos/sessions.tape in a clean Neovim — re-recorded weekly
what is shown when
- a layout worth keeping - three files, three windows
- :Session save - named after the project, no name to invent
- :only - and the layout is gone
- :Session load - and back
install
{
"StefanBartl/sessions.nvim",
opts = {},
} docs/
- BINDINGS.md
- CONTRIBUTING.md
- FEATURES.md
- README.md
- WORKFLOW.md
- api.md
- commands.md
- configuration.md
- git-integration.md
- installation.md
- marks.md
- metadata.md
- picker.md
- portability.md
- quickstart.md
- session-scoping.md
- statusline.md
- troubleshooting.md
- what-you-get.md
git log
- fix chip: a negative col_offset is clipped to col 0, keep dock_left
- test chip: cover a negative col_offset taking the rounded_chip fallback
- fix last: review fixes for the exit snapshot
- feat last: always snapshot the exiting session as 'last'; :LastSession loads it
- fix core: forget the current session on :cd; decouple save-tab from it
- fix chip: default pulse to false, not true
- feat chip: forward cfg.chip.min_width to ui.kit.chip.mount()
- feat chip: add :Session chip-toggle to show/hide the corner chip on demand
- fix core: bare :Session save targets the currently active session
- fix chip: don't crash setup() on a non-numeric col_offset
- fix chip: floor col_offset before deciding dock_left's rounded_chip fallback
- fix chip: dock_left falls back to rounded_chip under a nonzero col_offset