![在插入模式下禁用 vim 中新输入的语法突出显示](https://linux22.com/image/1581512/%E5%9C%A8%E6%8F%92%E5%85%A5%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%A6%81%E7%94%A8%20vim%20%E4%B8%AD%E6%96%B0%E8%BE%93%E5%85%A5%E7%9A%84%E8%AF%AD%E6%B3%95%E7%AA%81%E5%87%BA%E6%98%BE%E7%A4%BA.png)
当我在 vim 中启用语法高亮功能编辑 shell 脚本时,当我输入开头的 " 或 ${ 时,编辑器会立即重新高亮文件的其余部分,就好像它是字符串或变量名的一部分一样。然后,当我输入结尾的 " 或 } 时,它会再次重新高亮。这会导致大量闪烁。
是否可以禁用此全局实时重新突出显示?例如,是否有一个选项,在我离开插入模式之前不更改任何突出显示?或者也许只更改受新插入影响的行的突出显示,并保持其余行的突出显示,直到我结束编辑?
答案1
不幸的是这是不可能的。理论上,语法高亮可以向定义添加断言,说明“仅当光标不在里面时才匹配”,但由于这会使正则表达式更麻烦(并且可能也更慢),所以没有这样做。
您只能在进入/离开插入模式时完全禁用/启用语法高亮,但这会产生更多的闪烁(并且可能会导致速度变慢,因为整个缓冲区需要重新解析)。
我能提供的唯一实用建议是使用自动关闭插件(这自动附加结束字符Wiki 页面描述了一些简单的设置和插件列表,可以自动关闭任何打开的括号,从而基本上避免了这个问题。