Vim: How to change the highlight color for search hits and quickfix selection
Look at $VIMRUNTIME/colors/desert.vim
. Color mappings are defined there with the hi[ghlight]
command. The search highlighting is defined as
hi Search guibg=peru guifg=wheat
for the GUI and
hi Search cterm=NONE ctermfg=grey ctermbg=blue
for terminals.
You can override this setting in your .vimrc
using the same command after you select your colorscheme
. Type :h hi
for help.
For me I have to also add hlsearch under syntax on
in the ~/.vimrc
set hlsearch
hi Search ctermbg=LightYellow
hi Search ctermfg=Red
Inside VIM you can also do: :highlight Search ctermfg=yellow
to change it on the fly.
-
ctermfg
is for foreground color -
ctermbg
is for background color
available colors from the vi documentation page are:
*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
In my case the line in the QuickFix window was showing an unreadable grey on cyan, which was different to my search results (a more pleasing black on peach) This was confirmed by the command
:hi
which showed the formatting of QuickFixLine
and Search
as being set to
QuickFixLine xxx term=reverse guibg=Cyan
Search xxx term=reverse ctermfg=0 ctermbg=222 guifg=#000000 guibg=#FFE792
where xxx
had a sample format,
I appended the following line to my ~/.vimrc
hi QuickFixLine term=reverse ctermbg=52
and now in my terminal window I have a more pleasing dark red background. Running hi:
shows the addition of the background colour change for my ternimal:
QuickFixLine xxx term=reverse ctermbg=52 guibg=Cyan
(vim 8 on MacOS High Sierra in iTerm2, with molokai theme)