A small python program for managing vim sessions
Project description
Vim Session Manager
A manager for the under-utilized `mksession` command in vim
:information_source: 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
mksessioncommand 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. entervsm(Vim Session Manager), it allows you to list, open, and remove sessions files, either interactively or by name.
:superhero_man: Features
Current planned features
- Open session by name (regex filtered)
- Remove session by name (regex filtered)
- List all sessions
- Open sessions from an interactive prompt
- Batch session file removal from an interactive prompt
- Manages different vim variations (vim, nvim, gvim, macvim etc..)
- Show programmer statistics for each session when listed
Current planned packaging
- Pip install from this repo
- Build and install manually with poetry
- Pip install from pypi
Installing
- Install from pypi
Check it out on Pypi
pip install vim-session-manager
- Pip Installing from the git repo
# Copy and run this command
pip install git+https://github.com/mattcoding4days/vsm.git#egg=vim_session_manager --user
# you should now be able to use the program
vsm --help
pip install vim_session_manager
:mage: Usage
Set up
NOTE that an environement variable
VIM_SESSIONSis expected on the system, if it is not definedvsmwill default to~/.config/vim_sessionswhen it looks for your session files.
-
bash/zsh
export VIM_SESSIONS="path/to/where/you/want/to/store/your/sessions" -
fish
set -Ux VIM_SESSIONS "path/to/where/you/want/to/store/your/sessions"
Create session files easier
Add the below snippet to your
.vimrcorinit.vimto make creating new session files much easier.
if isdirectory(expand($VIM_SESSIONS))
nnoremap mk :mksession $VIM_SESSIONS/
nnoremap mo :mksession! $VIM_SESSIONS/
else
nnoremap mk :echo "VIM_SESSIONS directory does not exist, get vim session manager at https://github.com/mattcoding4days/vsm"<CR>
nnoremap mo :echo "VIM_SESSIONS directory does not exist, get vim session manager at https://github.com/mattcoding4days/vsm"<CR>
endif
Exploring the help menu for subcommands
Managing many variations of vim installed on the system
Open a session file interactively
Open session file by name
Remove session file(s) interactively (one or many)
Note that only the arrow keys are supported for movement, and the space bar is used to select/unselect
Remove a single session file by name (with regex matching)
:construction_worker: Development
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
:keyboard: Commands to help you out
NOTE: if you are installing poetry, DO NOT install it with pip
curl -sSL https://install.python-poetry.org | python3 -
Install the package
poetry install
Run the tests to verify everything worked
pytest
Start a poetry shell and run the executable
poetry shell
vsm --help
:package: 3rd party libraries
Vim Session Manager uses the following Python libraries
:scroll: Documentation
To be completed
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vim_session_manager-0.1.3.tar.gz.
File metadata
- Download URL: vim_session_manager-0.1.3.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.15.0-40-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa8c62ee6cf2394c3fb225505acdbbeb3ce84fbfd1bd36f6ea3a9c4bf2dfb2e2
|
|
| MD5 |
1ea54b43ebfe36020ef5464f76736863
|
|
| BLAKE2b-256 |
44cb280b5c7594198114ab2beadbd72b3f0046b6767a2e900ab80a07bbf2a439
|
File details
Details for the file vim_session_manager-0.1.3-py3-none-any.whl.
File metadata
- Download URL: vim_session_manager-0.1.3-py3-none-any.whl
- Upload date:
- Size: 25.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.4 Linux/5.15.0-40-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbe8af0aa707956ace636f065e754bc4f99b3feea222c94a870676df36d21568
|
|
| MD5 |
6aa5c140d1bcae49be1a23ce4f3a54b5
|
|
| BLAKE2b-256 |
dfc8b8913700ee5f6f95c2a6504ac27f5c6a21ae61e8986e55212c6d36560f1a
|