vim-session プラグインを使ってtabごとsessionを保存する方法

tmuxで指定したwindow/paneから始める方法 [再起動も安心]を説明したが、Vimのセッション情報もタブを含めてRestoreしたい。 最初は全て自動で保存しようとしたが、必要に応じて自分でセッションを保存した方が実用的。ブラウザのタブのように、使わないタブが残ってしまい必要のないタブが溜まっていってしまう。

vimはデフォルトでセッションの管理が可能だが、細かいところまで残すにはvim-sessionを使った方が良い。

.vimrc

" session
call dein#add('xolox/vim-misc')
call dein#add('xolox/vim-session')

let g:session_autosave = 'no'
let g:session_autoload = 'no'
nnoremap <Leader>ss :SaveSession

SaveSessionとタイプするのが面倒なのでノーマルモードで\ssでSaveSessionを呼び出す。

例えば、セッションをProject毎に保存する場合は、引数のセッション名にプロジェクト名を指定することでプロジェクトごとのセッションの作成が可能。

: SaveSession <session name>

.vim/sessions/<session name>.vimに保存されるのでこれをvimの引数として呼び出せばよい。

$ vim -S /home/shohey1226/.vim/sessions/gauss.vim

実際は、tmuxの起動スクリプトに書いておけば良い。

tmux send-keys -t $session:1 "cd ~/git/Gauss; vim -S $HOME/.vim/sessions/gauss.vim" C-m

Related Posts