[英]syntax highlighting doesn't work after restore a previous vim session
由於每次分割和加載每個窗口都有些麻煩,因此我使用以下方法保存了會話:
mksession ~/session1.vim
並使用以下方法恢復它:
vim -S session1.vim
要么
source session1.vim
它完美地恢復了上一個會話,但根本不顯示任何語法突出顯示。
我在這里發現了一個類似的問題: 在終端中恢復會話后沒有語法突出顯示,但沒有多大幫助。
有人有什么主意嗎?
我有同樣的問題; 如果我在 sessionoptions 中保存沒有 'options' 的會話,當我重新加載 Vim 時,緩沖區會被重新加載,但沒有語法高亮顯示。
解決方案是在重新加載時使用嵌套的 autocmd。
Wikia 有一篇關於加載和保存會話的大量文章。 底部提到了“嵌套”選項。
我使用了這個 StackOverflow answer的修改版本,這里是:
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
我可以使用 Obsession vim 插件和 Neovim 解決這個問題。 該線程中的答案幫助我找到了解決方案,盡管在我的情況下,此處提供的解決方案並沒有立即起作用。
我查看了 sessionoptions 幫助頁面。 對我來說,解決問題的設置是set sessionoptions+=localoptions
。 然后在配置中使用此選項重新加載 vim 並重新加載語法突出顯示后,突出顯示保存在會話中。
我遇到過同樣的問題。 我刪除了我的會話文件,我用 mks 重新創建了它並解決了這個問題。 可能它處於不一致的狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.