簡體   English   中英

恢復上一個 vim 會話后語法高亮不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM