極楽とんぼのロボット製作記

情報工学系大学院生がロボットとその周辺技術や身の回りの出来事について紹介するブログ

vimのタブ(セッション)を保存する「vim-session」

作業を開始するたびに複数のタブを開き直すのは大変ですよね。そんなあなたにvim-sessionをおすすめします。閉じた際のタブの状態(セッション)を保存して、もう1度開くときにそのセッションを読み込んで表示してくれます。


参考サイト
qiita.com

以下に、dein.tomlの設定例を示します。

" # dein.toml
[[plugins]]
repo = 'xolox/vim-session'
depends = ['xolox/vim-misc']
hook_add = '''
    " # 現在のディレクトリ直下の .vimsessions/ を取得
    let s:local_session_directory = xolox#misc#path#merge(getcwd(), '.vimsessions')
    " # 存在すれば
    if isdirectory(s:local_session_directory)
      " # session保存ディレクトリをそのディレクトリの設定
      let g:session_directory = s:local_session_directory
      " # vimを辞める時に自動保存
      let g:session_autosave = 'yes'
      " # 引数なしでvimを起動した時にsession保存ディレクトリのdefault.vimを開く
      let g:session_autoload = 'yes'
      " # 1分間に1回自動保存
      let g:session_autosave_periodic = 1
    else
      " # デフォルトの保存ディレクトリを変更する(NeoVimの場合)
      let g:session_directory = '~/.config/nvim/sessions'
      let g:session_autosave = 'yes'
      let g:session_autoload = 'yes'
      let g:session_autosave_periodic = 1
    endif
    unlet s:local_session_directory
	'''
[[plugins]]
repo = 'xolox/vim-misc'

vim-sessionはvim-miscに依存しているのでdependsを必ず書きます。

vimを起動したら以下のコマンドを入力して、セッションを保存したり、開いたりできます。
:SaveSession (default.vimにセッションを保存)
:SaveSession hoge (hoge.vimにセッションを保存)
:OpenSession (default.vimを開く)
:OpenSession hoge (hoge.vimを開く)

vimを:qaで閉じるとdefault.vimに自動的にセッションが保存されて、次に開くときにdefault.vimから開かれます。


参考サイト
vimでウィンドウやタブの状態を自動保存/復元する方法 - Qiita
GitHub - xolox/vim-session: Extended session management for Vim (:mksession on steroids)
NeoBundle から dein.vim に乗り換えたら爆速だった話 - Qiita