以前のvimセッションを復元した後、構文の強調表示が機能しない 質問する

以前のvimセッションを復元した後、構文の強調表示が機能しない 質問する

毎回ウィンドウを分割して読み込むのは面倒なので、次のようにしてセッションを保存しました。

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

おすすめ記事