Vim:如何更改搜索命中和快速修复选择的突出显示颜色

Posted

技术标签:

【中文标题】Vim:如何更改搜索命中和快速修复选择的突出显示颜色【英文标题】:Vim: How to change the highlight color for search hits and quickfix selection 【发布时间】:2011-10-29 12:16:30 【问题描述】:

我正在使用沙漠配色方案,它使用橙色背景上的白色文本来突出显示搜索结果。相同的模式用于快速修复窗口中的选定条目。

橙色上的白色不太可读。如何在 .vimrc 中更改它?

编辑:感谢您的快速回复,对于沙漠方案我现在正在使用以下搜索高亮修改:

highlight Search guibg='Purple' guifg='NONE'

紫色很容易在视觉上检测到,恕我直言,它不用于沙漠方案中的语法着色。

【问题讨论】:

【参考方案1】:

看看$VIMRUNTIME/colors/desert.vim。颜色映射在此处使用hi[ghlight] 命令定义。搜索高亮定义为

hi Search guibg=peru guifg=wheat

用于 GUI 和

hi Search cterm=NONE ctermfg=grey ctermbg=blue

用于终端。

您可以在选择colorscheme 后使用相同的命令覆盖.vimrc 中的此设置。输入:h hi 寻求帮助。

【讨论】:

嘿!你刚刚又给了我一个提示。我一直使用 :help 而不是 :h ;) 我发现 Torte 配色方案可以很好地满足我的需求。 :colorscheme torte 如果您的搜索结果根本没有突出显示,您可能还需要:set hlsearch 要为您当前的 vim 会话执行一次并且不保留更改,只需在 hi 命令前面以 ex 模式 (:) 运行它::hi Search cterm=NONE ctermfg=grey ctermbg=blue 我可以看到这突出显示了所有实例。如何更改当前光标所在实例的突出显示?【参考方案2】:

对我来说,我还必须在 syntax on 下的 ~/.vimrc 中添加 hlsearch

set hlsearch
hi Search ctermbg=LightYellow
hi Search ctermfg=Red

在 VIM 中,您也可以::highlight Search ctermfg=yellow 即时更改它。

ctermfg 用于前景色 ctermbg 用于背景颜色

vi documentation page 的可用颜色有:

*cterm-colors*

NR-16   NR-8    COLOR NAME 
0       0       Black
1       4       DarkBlue
2       2       DarkGreen
3       6       DarkCyan
4       1       DarkRed
5       5       DarkMagenta
6       3       Brown, DarkYellow
7       7       LightGray, LightGrey, Gray, Grey
8       0*      DarkGray, DarkGrey
9       4*      Blue, LightBlue
10      2*      Green, LightGreen
11      6*      Cyan, LightCyan
12      1*      Red, LightRed
13      5*      Magenta, LightMagenta
14      3*      Yellow, LightYellow
15      7*      White

【讨论】:

【参考方案3】:

在我的情况下,QuickFix 窗口中的行在青色上显示不可读的灰色,这与我的搜索结果不同(桃色上更令人愉悦的黑色) 这已被命令确认

:hi

显示QuickFixLineSearch 的格式设置为

QuickFixLine   xxx term=reverse guibg=Cyan
Search         xxx term=reverse ctermfg=0 ctermbg=222 guifg=#000000 guibg=#FFE792

xxx 有一个示例格式,

我将以下行附加到我的~/.vimrc

hi QuickFixLine term=reverse ctermbg=52

现在在我的终端窗口中,我有一个更令人愉悦的深红色背景。运行 hi: 显示为我的终端添加了背景颜色更改:

QuickFixLine   xxx term=reverse ctermbg=52 guibg=Cyan

(iTerm2 中 MacOS High Sierra 上的 vim 8,带有 molokai 主题)

【讨论】:

以上是关于Vim:如何更改搜索命中和快速修复选择的突出显示颜色的主要内容,如果未能解决你的问题,请参考以下文章

无法关闭 Vim 文本突出显示 [重复]

如何更改 Vim 拼写检查中的突出显示样式?

VIM,增量搜索:如何跳转到下一个结果并使其突出显示?

Eclipse:如何更改当前选择的方法/表达式的突出显示颜色?

如何修复裁剪突出显示视图的高度,而不是使用上传的图像进行更改?

像在 NetBeans 中一样在 Vim 中突出显示光标下的变量