如何在vim中没有光标跳转的情况下获得匹配的大括号突出显示

时间:2015-03-25 18:16:02

标签: vim editor

我在几台机器上运行vim 7.3。默认情况下,我的所有实例都启用了MatchParen。在我的Windows机器上使用gvim,它正在做我想要的 - 当我的光标在支架,paren等上时,它在视觉上突出显示匹配。它不会影响光标导航。但是,在我的Ubuntu盒子上,当我将光标移动到角色上时,它实际上会跳转到匹配。

我确定该行为是由MatchParens引起的,因为如果我执行:NoMatchParen,它会停止。不幸的是,我当时也没有突出显示。但我无法弄清楚我的设置有何不同。

如果你能指出一个总是会突出显示当前位置周围最接近的一对字符的插件(比如MatchTagsAlways的代码导向版本),我会更喜欢你。

4 个答案:

答案 0 :(得分:2)

光标没有跳跃。颜色方案可能已为MatchParen突出显示组定义了错误的颜色,这使得它看起来像光标正在跳跃。

答案 1 :(得分:2)

设置showmatch时,光标实际上是跳跃的,以下行修复了问题:

set matchtime=0

更多细节: http://vimdoc.sourceforge.net/htmldoc/options.html#'匹配时间'

答案 2 :(得分:1)

就像FDinoff在接受的答案中所说,这可能只是一个颜色问题。

所以,如果匹配的颜色" paren"迷惑你,调整背景和前景的颜色可能是解决方案。

但你怎么做? ^^

我已经完成了vimdoc的旅程(这并不容易)。 我测试了一大堆变量,发现相关的调整是[hi]ghlight command,特别是MatchParen组。

解决方案

在我的.vimrc中添加它可以解决问题:

hi MatchParen ctermfg=208 ctermbg=bg

请注意,vim配置文件是从上到下阅读的,有些类型的"字"有几个选项匹配。例如,布尔值也可以是关键字。因此,您必须注意这些选项的顺序。

这是如何工作的?

我的问题是背景有华丽的颜色,而前景有我终端背景的颜色,这让它真的很混乱。因此切换颜色是的解决方案。但也许你必须以不同的方式调整它。

首先,您可以通过输入以下命令检查突出显示MatchParen 的当前值(在vim内部,在正常模式下):

:hi MatchParen

您会在当前样式中看到hi MatchParen后跟XXX,然后是以空格分隔的argument=value列表。

对于"终端&#34>,重要的论点是ctermfgctermbg。 vim,guifgguibg用于" gui" VIM。 (其中fg表示前景,bg表示背景)

您可以更改值并实时查看结果。只需将光标放在匹配字符上,然后输入以下命令:

:hi MatchParen SomeArgument=SomeValue

这不会被保存,所以不要担心。当您找到正确的值组合时,可以将它们添加到.vimrc中,如上所示。

就我个人而言,我将ctermfg设置为208(橙色),将ctermbg设置为bg(当前背景颜色的关键字,如果vim已知)。<登记/> 如果您在gui中使用vim,请查看here以获取可用的颜色选择。

答案 3 :(得分:0)

gVim .vim中运行默认openSUSE 13.2 Legacy 32 Bit(v7.4.461)而没有任何配置(即没有:set showmatch?个文件),showmatch显示:set noshowmatch已启用开始,这不是Vim's stated default behaviour。我们可以通过在.vimrc中添加#horizontalSlider ul来解决此问题。