毎回ウィンドウを分割して読み込むのは面倒なので、次のようにしてセッションを保存しました。
mksession ~/session1.vim
そして、以下を使用して復元しました:
vim -S session1.vim
または
source session1.vim
以前のセッションは完全に復元されますが、構文の強調表示はまったく表示されません。
ここで同様の質問を見つけました:ターミナルでセッションを復元した後、構文が強調表示されないしかし、あまり役に立ちません。
誰か何か考えがありますか?
ベストアンサー1
私も同じ問題を抱えていました。sessionoptions に「options」を指定せずにセッションを保存すると、Vim を再ロードしたときにバッファは再ロードされましたが、構文の強調表示はありませんでした。
解決策は、再ロード時にネストされた autocmd を使用することです。
Wikiaには詳細な記事があるセッションの読み込みと保存について「ネスト」オプションは下部に記載されています。
私は修正版を使用していますこのStackOverflowの回答、 ここにあります:
fu! SaveSess()
execute 'mksession! ' . getcwd() . '/.session.vim'
endfunction
fu! RestoreSess()
if filereadable(getcwd() . '/.session.vim')
execute 'so ' . getcwd() . '/.session.vim'
if bufexists(1)
for l in range(1, bufnr('$'))
if bufwinnr(l) == -1
exec 'sbuffer ' . l
endif
endfor
endif
endif
endfunction
autocmd VimLeave * call SaveSess()
autocmd VimEnter * nested call RestoreSess()
set sessionoptions-=options " Don't save options