如何关闭没有文件名或文件类型的新 vim windows 的语法突出显示?

How do you turn off syntax highlighting for new vim windows without a filename or file type?

在我为 vim 安装 'artesanal' 主题并打开语法高亮后,每个 vim window 都有语法高亮,包括全新的空 windows [无名称],没有名称或文件类型。我想知道你们中是否有人知道如何为每个带有扩展名的文件保持语法高亮显示,但对没有名称或文件扩展名的任何文件禁用它。

您可以检查是否已设置文件类型

if &filetype != ""
  syntax enable
endif

这不应该发生。我不知道 artesanal(并且 "theme" 是 Vim 中的未定义术语;它有 colorschemes文件类型插件语法脚本;我希望它不是像spf-13那样完整的Vim"distribution" Janus,它们以快速安装和开箱即用的设置吸引您,但您付出的代价是增加了复杂性(您需要同时了解 Vim的运行时加载方案和发行版的任意约定)和不灵活(发行版可能使某些事情变得容易,但其他事情却非常困难))。

看起来语法即使对于普通文件也是有效的。通常,语法由 文件类型 决定,因此请先检查 :verbose setlocal filetype?。如果这个returns是一个值,则需要检测一下:help filetypes.

如果这里是空的,也有可能是什么东西直接设置了'syntax'。你可以用同样的方式检查::verbose setlocal syntax?.

现在,如果它也是空的,并且 :syntax list 没有显示任何东西,突出显示也可能来自 :match:call matchadd() 命令; :call clearmatches() 会删除它。 (而且您仍然需要找到定义这些匹配项的来源。)