【问题标题】:vim randomly breaks syntax highlightingvim 随机中断语法高亮
【发布时间】:2015-01-29 20:30:28
【问题描述】:

在具有相当大的ping乘时的远程服务器上工作时,语法突然突出显示,看似随机休息。发生这种情况时,它看起来像这样:

语法高亮一直到第 24 行都很好,之后一切都是灰色的。我可以通过随机滚动或关闭打开的 vim 来修复它。但我既不能重现问题,也不能重现修复。

当我使用完全相同版本的 vim 和完全相同的 .vimrc 时,不会发生这种情况。因此我怀疑服务器上有问题。特别是我怀疑问题可能是由于 ping 时间长(~ 170 毫秒)而出现的。

有人看到过类似的行为吗?

【问题讨论】:

  • 当它发生时按下<C-l> 会修复它吗?
  • 如果本地文件很大,我会得到相同的行为。
  • 你用的是什么版本的vim?
  • @xx 或者我正在使用 vim 7.4,包括补丁:1-516。
  • <C-l> 987654323 @ 487654324 @或@ 487654325 @将工作? span>

标签: vim syntax-highlighting


【解决方案1】:

我偶尔会遇到这种情况,但我总是顺其自然,因为它只会在编辑非常大的文件时影响到我。

但是,现在你提出来了,我去寻找解决方案。我找到了这个页面:http://vim.wikia.com/wiki/Fix_syntax_highlighting,它有以下命令:

:syntax sync fromstart

运行它为我解决了这个问题,尽管它确实需要一段时间才能完成。

编辑:按照该页面的建议使用minlines 参数,我发现通过运行此命令可以立即获得通常正确的突出显示:

:syntax sync minlines=20

但显然,您可以根据自己的喜好权衡速度和准确性。

【讨论】:

  • 这些命令都没有为我修复它。看来我有不同的问题?
  • 我在本地 vim 上遇到过几次类似的问题,都是相对较大的文件。我曾经向上/向下滚动几次,有时折叠/展开所有折叠以纠正它。 syntax sync minlines=20 似乎对我有用。
  • 我经常遇到语法高亮问题,文本文件小到 ~15KB,因此我分配了一个功能键来修复它:map <F12> :syntax sync fromstart<cr>。在我的情况下,minlines 参数无法正确突出显示。
  • 你可以试试这个:set redrawtime=10000。这需要一些时间,但我发现它不会破坏格式。您可以在此处找到有关此问题的更多信息:github.com/vim/vim/issues/2790
【解决方案2】:

我在向上/向下翻页时遇到了类似的问题。

已通过此配置修复。

autocmd BufEnter * syntax sync fromstart

参考:http://vim.wikia.com/wiki/Fix_syntax_highlighting

【讨论】:

    【解决方案3】:

    我不确定这是一个解决方案,我无法找到这种情况的其他情况。我记得曾经见过这样的东西,但我不知道如何复制。我怀疑这不是连接,而是vim中的一些东西。我错过了文件的开头以便能够正确复制。

    但您可以尝试不同的选择,例如:

    :syntax sync ccomment
    

    这是文件的开头是否在 c 注释或其他内容中;我不确定这是否或如何适用于您的情况;无论哪种方式,检查文档是否对您有用: http://vimdoc.sourceforge.net/htmldoc/syntax.html#:syn-sync

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 2014-11-14
      • 2011-01-19
      • 2015-08-08
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      相关资源
      最近更新 更多