Skip to content
/ vim-pm Public

Minimal project and session manager form Vim/Neovim

Notifications You must be signed in to change notification settings

dcampos/vim-pm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

vim-pm

A simple and minimal project and session manager for Vim/Neovim. Only 100 lines of code.

Overview

Enter a project, open some files, etc. Then use ProjectSave! to save the layout to .vim/session.vim.

Reopen the project with ProjectOpen <Tab>. Use ProjectSave (without a !) to save the current project before quitting.

The list of projects is saved to $HOME/.vimprojects (Vim) or stdpath('data') . '/projects.txt' (Neovim).

Mappings

Adding some mappings is recommend for a better experience:

nnoremap <Leader>po :ProjectOpen<Space>
nnoremap <silent><Leader>ps :ProjectSave<CR>
nnoremap <silent><Leader>pS :ProjectSave!<CR>
nnoremap <silent><Leader>pq :ProjectQuit<CR>
nnoremap <silent><Leader>pl :ProjectList<CR>
nnoremap <silent><Leader>pl :ProjectList<CR>
nnoremap <silent><Leader>pp :ProjectPrevious<CR>

Lua (Neovim):

vim.keymap.set('n', '<Leader>po', ':ProjectOpen<Space>', { silent = false })
vim.keymap.set('n', '<Leader>ps', ':ProjectSave<CR>')
vim.keymap.set('n', '<Leader>pS', ':ProjectSave!<CR>')
vim.keymap.set('n', '<Leader>pq', ':ProjectQuit<CR>')
vim.keymap.set('n', '<Leader>pl', ':ProjectList<CR>')
vim.keymap.set('n', '<Leader>pl', ':ProjectList<CR>')
vim.keymap.set('n', '<Leader>pp', ':ProjectPrevious<CR>')

TODO

  • Save list of projects in JSON?

Licence

MIT license.

About

Minimal project and session manager form Vim/Neovim

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published