Vim Session Manager

A manager for the under-utilized `mksession` command in vim

GitHub issues
GitHub contributors
GitHub forks
GitHub Repo stars
Lines of code

ℹ️ Reasoning

If you use vim or neovim on a daily basis and work in large codebases, it is probably not uncommon for you
to have 10+ tabs open at a time, with various splits. Once you close this vim session the layout is lost to the ethers.
the mksession command in vim(neovim) can save you, thus saving the session to a directory, promising to return you to your
work exactly how you left it. However, the problem is most of us accrue many of these session files scattered about, personally
I have 28 vim session files, easily loading them, rememembering the context of each one, and removing stale sessions becomes a hassle.
enter vsm (Vim Session Manager), it is a script I wrote years ago that has been kicking about my dotfiles, and now is being revamped
and written as an easily installable python package as some of my compatriots have expressed interest in using it.

?‍♂️ Features

Current planned features

  • Open session by name (regex filtered)
  • Remove session by name (regex filtered)
  • List all sessions
  • Show programmer statistics for each session

? Development (for the contribution driven opensourcerer)

The project is managed by Python Poetry and uses python >= 3.10.1.
Note: mypy static analyzing currently will not work as it does not yet support the match statement

⌨️ Commands to help you out

Install the package

poetry install

Run the tests to verify everything worked

poetry run tests

Run the executable

poetry run drive

You can pass command line arguments to executable through poetry

  1. poetry run drive --help

  2. poetry run drive --open-session <session>

  3. poetry run drive --remove-session <session>

  4. poetry run drive --the-current-state-of-things

? 3rd party libraries

Vim Session Manager uses the following Python libraries

  1. result for Rust like elegance

  2. halo fancy spinner library

  3. rich, make terminal programs great again

? Documentation

To be completed

? Contributing

To be completed


View Github