Setup deno environment for vim で、 Vim でテスト環境を作成したが、一時的にテスト結果出力ウィンドウを最大化してまた同じウィンドウレイアウトに戻りたい! みたいなことができ、セッション保存のプラグインとして、 osyo-manga/vim-reanimate を使用してみた。

このプラグインの使い方作者の方の以下記事でめちゃよく解説されてるのでそこを見れば使えると思う。

reanimate.vim というプラグインをつくった - C++でゲームプログラミング

インストールと設定

インストールは dein.vim だとこんな感じ。

  • dein.toml
[[plugins]]
repo = 'osyo-manga/vim-reanimate'
on_cmd = ['ReanimateSave', 'ReanimateLoad']
hook_add = '''
let g:reanimate_save_dir = "~/.cache/vim/save_point"
let g:reanimate_default_category = "def"
let g:reanimate_default_save_name = "lat"

function s:reanimate_save_cwd() abort
  let l:cmd = "ReanimateSave " . fnamemodify(getcwd(), ":t")
  echom l:cmd
  exe l:cmd
endfunction

function s:reanimate_load_cwd() abort
  let l:cmd = "ReanimateLoad " . fnamemodify(getcwd(), ":t")
  echom l:cmd
  exe l:cmd
endfunction

nnoremap <space>rs <cmd>call <SID>reanimate_save_cwd()<cr>
nnoremap <space>rl <cmd>call <SID>reanimate_load_cwd()<cr>
'''

簡単には、以下コマンドで名前をつけてセッションの Save , Load ができる。

" MySaveData という名前を付けて保存
:ReanimateSave MySaveData

" 保存した MySaveData を復元
:ReanimateLoad MySaveData

この MySaveData という名前指定するのがめんどいので、 <space>rs を押下すると自動でカレントディレクトリの名前で保存するようにしている。 <space>rl でロード。

別途、 airblade/vim-rooter や、 mattn/vim-findroot のプラグインを入れていると自動で repository 名前で保存できる。


参考