Reputation: 72527
I'm using :set showmatch to highlight the matching bracket or brace when the cursor is over one.
I'd like to change the highlight-color so that it's radically different from the cursor color, because I've got the situation shown in the screenshots.
When the cursor is over the second brace:
And when the cursor is to the immediate-right of the brace:
This uses my terminal color scheme, which is taken from Solarized. Unfortunately, it's a bit of a pain to see which highlight is the brace matching and which is the cursor, when the braces are close together.
Is there a Vim setting I can use to change the color of that to, say, the bold magenta ANSI? I'm not particularly interested in remapping my ANSI colors within the terminal or shell - I'd like a Vim-specific option, if it exists.
Upvotes: 104
Views: 40750
Reputation: 48589
I'm using the vividchalk
color scheme with macvim
, and none of the various solutions I tried worked for me. But I searched the file:
~/.vim/colors/vividchalk.vim
for MatchParen
and I found this line:
call s:hibg("MatchParen","#1100AA","DarkBlue",18)
I commented out that line, then I copied that line, and I changed it to:
call s:hibg("MatchParen","#FF0000","Red",18)
which succeeded in highlighting the matching parenthesis in red, which is a LOT easier to see. I hope that helps someone else.
If you want to briefly jump to the opening bracket/paren/brace when you type the closing bracket/paren/brace, then adding:
set showmatch
to ~/.vimrc worked for me.
A very handy trick is setting the cursor on a bracket/paren/brace and then typing %
to jump to the matching bracket/paren/brace. That is especially useful when the matching bracket/paren/brace has scrolled off the page. Typing %
a second time will jump back to where you came from.
Upvotes: 8
Reputation: 3249
The colours that I use for Vim highlighting (from my ~/.vimrc file):
" set sensible highlight matches that don't obscure the text
:highlight MatchParen cterm=underline ctermbg=black ctermfg=NONE
:highlight MatchParen gui=underline guibg=black guifg=NONE
NONE uses the character colour from the
:colourscheme ron
(or whichever you prefer from :!ls $VIMRUNTIME/colors
).
Upvotes: 6
Reputation: 344
Try :!ls $VIMRUNTIME/colors
. These are default color schemes Vim supply.
Then change color scheme :colorscheme name
, find the color scheme that you like and copy the color scheme: :!cp $VIMRUNTIME/colors/<name>.vim ~/.vim/colors/new_name.vim
Edit it and set with the color scheme command or better add colorscheme name
to the .vimrc file. After changes to color file:colorscheme name
, reload Vim's colors.
It's handy to use :vsp
in create a vertical split in Vim. Edit the colors file in one half, and check changes in other. I used nye17's answer and added the hi MatchParen
line to my color_file.vim. It works just fine.
Links:
Upvotes: 5
Reputation: 13347
You can change the colors to, e.g., blue over green:
hi MatchParen cterm=none ctermbg=green ctermfg=blue
Just put it in your .vimrc file.
Basically, cterm
determines the style, which can be none
, underline
or bold
, while ctermbg
and ctermfg
are, as their names suggest, background and foreground colors, so change them as you see fit.
For your case, you may want
hi MatchParen cterm=bold ctermbg=none ctermfg=magenta
Upvotes: 134