繁体   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