设置 Vim 括号高亮颜色

102

我正在使用:set showmatch来在光标悬停在括号或大括号上时突出显示匹配的括号或大括号。

我想改变高亮颜色,使其与光标颜色截然不同,因为我遇到了屏幕截图中所示的情况。

当光标悬停在第二个大括号上时:

Cursor over the second brace

当光标位于括号的直接右侧时:

Cursor to the right

这里使用了我自己的终端配色方案,取自于Solarized。不幸的是,当括号彼此靠近时,很难看出哪个高亮是匹配的括号,哪个是光标。

有没有Vim设置可以改变它的颜色,比如说用粗体品红ANSI?我并不特别想在终端或shell中重新映射我的ANSI颜色 - 如果存在Vim特定的选项,我希望能够使用它。


是的,这有点疯狂。在Neovim中,使用内置的配色方案和lsp-zero,匹配高亮与光标完全相同,并且当您经过匹配时,光标会短暂消失,因此看起来就像光标跳到了匹配括号处。还不确定具体是哪个配置出了问题,但这让人发疯。 - Sasgorilla
4个回答

130

您可以将颜色更改为蓝色或绿色等:

hi MatchParen cterm=none ctermbg=green ctermfg=blue

只需将其放入您的.vimrc文件中即可。

基本上,cterm决定了样式,可以是noneunderlinebold,而ctermbgctermfg则分别是背景和前景颜色,因此根据需要更改它们。

对于您的情况,您可能想要

hi MatchParen cterm=bold ctermbg=none ctermfg=magenta

13
谢谢!如果您使用GUI版本,这个命令非常有效。"hi MatchParen guibg=NONE guifg=blue gui=bold"。 - Robert Wahler
2
在寻找如何关闭该功能(MatchParen)时,我偶然发现了这个答案,因为我发现颜色太刺眼了(molokai)。有人应该修复默认设置... - JepZ
3
谢谢!我正在使用Neovim,在我的情况下,我必须设置hi MatchParen guifg=lightblue guibg=darkblue - Immanuel Weihnachten
有人有这个的Lua(Neovim)版本吗? - Sasgorilla

8

我正在使用 vividchalk 配色方案和 macvim,但是我尝试的各种解决方案都没有起作用。但是我搜索了文件:

~/.vim/colors/vividchalk.vim

我在编程中遇到了MatchParen,并找到了这行代码:

call s:hibg("MatchParen","#1100AA","DarkBlue",18)

我将那行代码注释掉,然后复制了那行代码,并将其修改为:

 call s:hibg("MatchParen","#FF0000","Red",18)

成功将匹配的括号标记为红色,这样更容易看到。希望能对其他人有所帮助。

如果你想在输入闭合括号/圆括号/大括号时快速跳转到开放括号/圆括号/大括号,则可以添加:

set showmatch

对我来说,将其添加到~/.vimrc中有效。

非常方便的技巧是将光标放在括号/圆括号/大括号上,然后键入%以跳转到匹配的括号/圆括号/大括号。当匹配的括号/圆括号/大括号已经滚动到页面外时,这尤其有用。再次键入%将返回到原来的位置。


6

我在Vim高亮中使用的颜色(来自我的~/.vimrc文件):

" 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使用来自:colourscheme ron(或者你喜欢的来自:!ls $VIMRUNTIME/colors)的字符颜色。


5

尝试运行:!ls $VIMRUNTIME/colors。这些是Vim提供的默认配色方案。

然后更改颜色方案:colorscheme name,找到你喜欢的颜色方案并复制颜色方案::!cp $VIMRUNTIME/colors/<name>.vim ~/.vim/colors/new_name.vim

编辑它并使用颜色方案命令进行设置,或更好地将colorscheme name添加到.vimrc文件中。在更改颜色文件后:colorscheme name,重新加载Vim的颜色。

在Vim中创建一个垂直分割很方便,可以使用:vsp。在一半中编辑颜色文件,并在另一半中查看更改。我使用了nye17的答案并将hi MatchParen行添加到我的color_file.vim中。它完全正常工作。

链接:


Peter Mortensen,感谢您的帮助。 - dobhareach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接