proj
Goals
- Integrate vim sesssions, notes, and directories
- Trivial Initialization
- Support monorepo + multiple work trees + branches
Foundations
- smartcd
- notes system
- little vim plugins + vim8 optional loading
Sketch
- Support worktrees by allowing symlinks in smartcd scripts dir
proj init <proj> -> create project called <proj> for current dir, creating vim session and note.
if either vim session or note already exist, fail with error
--skip-vim or --skip-note do not attempt to create those
--force-vim or --force-note will overwrite those
proj vim -> open vim session
proj gvim -> open vim session in new terminal (todo)
proj note -> open note (maybe just render it?) (todo)
proj enote -> open note in existing notes session (todo)
Plan
- add proj index
- from name to path
- worktrees? (multiple path options, one correct?)
- branches? (only whichever work tree has a branch checked out?)
- add proj support to notes.vim
- open vim for project
:Session
:Tmux
window for project
- create proj.vim
- show
:Note
from within project
- open
:Tmux
- move smartcd config to dropbox
Ideas
- allow locking a project to a branch? (
proj unlock-branch
, proj lock-branch
, implemented as part of proj.vim?)
- maybe to a given worktree
- cd $(proj dir proj)
- per project shell history
proj tabs
to load firefox tabs from some urls on the note?
- vim sessions mapped to branch, vs project, to allow more fluid switching?
- automatically link to any existing superproject (ie stuff in the zr monorepo should link to a zr project)
Inspiration