更改 vim 合成错误 window 的颜色

Changing color of vim syntastic error window

我在 VIM 上安装了 syntastic 以帮助我显示 PHP 代码中的错误,但是对于当前的 colorscheme/setting 我必须使用以下颜色:

如您所见,它很难阅读,我想知道如果出现此错误 window,是否有办法更改颜色。

如果这仅适用于 quickfix window 中的当前选定项目,那就是正常 quickfix 突出显示顶部的 Search 突出显示组。然后你必须改变其中一个; Search 组也会影响其他 windows 中的搜索结果。

如果这是其他/特殊的 Syntastic 突出显示,您最好查看 :hi 输出中的所有组以找到错误的。

覆盖

除非您想完全切换您的配色方案,否则您可以通过 :highlight 命令调整各个突出显示组 :colorscheme 命令之后 ~/.vimrc. :hi link 到另一个预定义组,或提供您自己的 ctermfg=... guifg=... 等颜色定义,如 :help highlight-args 所述。

Syntastic 不会更改(也不关心)错误的突出显示 window。这是一个普通的 quickfix window,文件类型为 qf。看syntax/qf.vim,默认高亮是这样的:

syn match   qfFileName      "^[^|]*" nextgroup=qfSeparator
syn match   qfSeparator     "|" nextgroup=qfLineNr contained
syn match   qfLineNr        "[^|]*" contained contains=qfError
syn match   qfError         "error" contained

hi def link qfFileName      Directory
hi def link qfLineNr        LineNr
hi def link qfError         Error

因此,如果您看到 quickfix window 的颜色与正文不同,那是因为您的配色方案特别设计了它的外观。您可以覆盖 qfFileNameqfSeparatorqfLineNrqfError 的突出显示以使其更具可读性,但 IMO 更好的解决方案是使用不那么破损的配色方案。

编辑: Vim 8.0.641 及更高版本有 QuickFixLine.