我在多台机器上运行 vim 7.3。默认情况下,我的所有实例都启用了 MatchParen。在我的 Windows 机器上使用 gvim,它完全符合我的要求 - 当我的光标位于括号、括号等上时,它会在视觉上突出显示匹配项。它不影响光标导航。但是,在我的 Ubuntu 机器上,当我将光标移动到字符上时,它实际上会跳转到匹配项。
我确定该行为是由 MatchParens 引起的,因为如果我执行 :NoMatchParen,它就会停止。不幸的是,我当时也没有得到突出显示。不过,我无法弄清楚我的设置在哪里不同。
如果你能指出一个插件,我会更喜欢你,该插件将始终突出显示我当前位置周围最接近的封闭字符对(例如 MatchTagsAlways 的面向代码的版本)
当showmatch设置时,光标实际上是在跳跃,下面一行修复了问题:
set matchtime=0
Run Code Online (Sandbox Code Playgroud)
更多细节: http ://vimdoc.sourceforge.net/htmldoc/options.html#'matchtime'
就像 FDinoff 在接受的答案中所说的那样,这可能只是颜色问题。
因此,如果匹配的“paren”的颜色让您迷失方向,调整背景和前景的颜色可能是解决方案。
我已经通过vimdoc进行了相当长的旅程(这并不容易)。我测试了一大堆变量,发现相关的调整是[hi]ghlight 命令,特别是MatchParen组。
在我的 .vimrc 中添加这个可以解决问题:
hi MatchParen ctermfg=208 ctermbg=bg
Run Code Online (Sandbox Code Playgroud)
请注意,vim 配置文件是从上到下读取的,某些类型的“单词”由多个选项匹配。例如,布尔值也可以是关键字。因此,您必须注意这些选项的顺序。
我的问题是背景有华丽的颜色,而前景有我的终端背景的颜色,这使得它真的很混乱。因此切换颜色是我的解决方案。但也许你将不得不以不同的方式调整它。
首先,您可以通过输入以下命令来检查高亮 MatchParen 的当前值(在 vim 中,在正常模式下):
:hi MatchParen
Run Code Online (Sandbox Code Playgroud)
您将在当前样式中看到hi MatchParen后跟XXX,后跟argument=value由空格分隔的列表。
最重要的参数是ctermfg与ctermbg为“终端” VIM,guifg并guibg为“鬼” VIM。(其中 fg 表示前景,bg 表示背景)
您可以更改一个值并实时查看结果。只需将光标放在匹配字符上并输入以下命令:
:hi MatchParen SomeArgument=SomeValue
Run Code Online (Sandbox Code Playgroud)
这不会被保存,所以不用担心。当您找到合适的值组合时,您可以将它们添加到您的 .vimrc 中,如上所示。
就个人而言,我设置ctermfg为208(orange color) 和ctermbgto bg(当前背景颜色的关键字,如果 vim 知道的话)。
如果您在 gui 中使用 vim,请查看此处以了解可用的颜色选择。