关于VIM高亮匹配括号

近日发现我的VIM不能自动高亮匹配括号了,于是搜索之,发现该功能是由matchparen提供的。

1
:h matchparen

paren是单词parentheses(括号)的缩写。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
高亮匹配括号                      *matchparen*

这里提到的功能是一个标准插件 |standard-plugin|。
只有 'compatible' 不置位时才能使用此插件。

设置 "loaded_matchparen" 变量可以避免载入此插件: >
    :let loaded_matchparen = 1

此插件安装 CursorMoved、CursorMovedI 和 WinEnter 自动命令来重新定义匹配高亮。

                    *:NoMatchParen* *:DoMatchParen*
要在载入此插件后关闭它,用: >

    :NoMatchParen

要再次打开: >

 <img src='http://ihacklog.com/data/views/public/assets/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> oMatchParen

使用的高亮是 MatchParen。":highlight" 命令可用来为它指定不同的颜色。例如: >
>
    :hi MatchParen ctermbg=blue guibg=lightblue

匹配的字符组来自 'matchpairs' 选项。你可以改变该值来高亮不同的匹配。注意 不是
什么值都可以。比如,你不能高亮单引号或双引号,因为它们的开始和结束字符相同。

使用语法高亮的属性。如果光标目前不在字符串或注释语法项目里,则忽略字符串和注释
里的匹配。任何名字里包含 "string" 或 "comment" 的语法项目都被认为是字符串或注
释项目。

移动光标时,限制搜索范围以避免延迟。这些限制包括:
- 窗口的可见部分。
- 光标上下 100 行,避免关闭折叠存在时的延迟过长。
- 光标前后 'synmaxcol' 乘以 2 个字节,避免存在带语法高亮的长行时延迟过长。


如果你希望 |%| 命令更好的工作,可以使用 matchit 插件,见 |matchit-install|。该
插件也可用于跳过注释里的匹配。这不同于 matchparen 高亮,两者使用不同的机制。

查看了下我的vimrc文件,果然发现有一行:

1
let loaded_matchparen = 1

此行正是导致我的VIM不高亮显示匹配括号的罪魁祸首。
关于高亮组的帮助:

1
:h highlight-groups

顺便提一下刚搜索到的关于语法高亮的一篇文章:
http://easwy.com/blog/archives/advanced-vim-skills-syntax-on-colorscheme/

更多
No Responses Post a comment

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS