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
显示QuickFixLine
和Search
的格式设置为
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:如何更改搜索命中和快速修复选择的突出显示颜色的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse:如何更改当前选择的方法/表达式的突出显示颜色?