Vim可以通过设置 set showmatch 打开自带的括号匹配功能,更多Vim的配置介绍,推荐阅读vimrc入门级配置

但是,在使用Vim编写代码时经常会出现一行代码中有多重括号嵌套的场景,这时,阅读和分析这种连续嵌套的多重括号会变得较为困难。

rainbow_parenthsis是一个对不同括号( 包括()[]{}<> )使用不同彩色进行高亮匹配显示的Vim插件,虽然功能较为简单,但是却十分实用。

1. rainbow_parenthsis插件安装

rainbow_parenthsis插件托管在github上,推荐使用Vim插件管理器vundlevim-plug安装。

若使用vundle安装vim插件rainbow_parenthsis,需要在 ~/.vimrc 中添加 Plugin 'kien/rainbow_parentheses.vim' 后执行 :PluginInstall 命令进行安装。

若使用vim-plug安装Vim插件rainbow_parenthsis,需要在 ~/.vimrc 中添加 Plug 'kien/rainbow_parentheses.vim' 后执行 :PlugInstall 命令进行安装。

关于Vim插件的管理和安装,可阅读Vim教程网上相关文章,本文不做详细介绍,

2. rainbow_parenthsis插件配置

Vim命令行模式下使用 :RainbowParenthesesToggle 命令可打开rainbow_parenthsis插件。

rainbow_parenthsis插件的 g:rbpt_colorpairs 选项用于设置对应嵌套层次的括号所使用的高亮颜色,官方推荐的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let g:rbpt_colorpairs = [
\ ['brown', 'RoyalBlue3'],
\ ['Darkblue', 'SeaGreen3'],
\ ['darkgray', 'DarkOrchid3'],
\ ['darkgreen', 'firebrick3'],
\ ['darkcyan', 'RoyalBlue3'],
\ ['darkred', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['brown', 'firebrick3'],
\ ['gray', 'RoyalBlue3'],
,
\ ['darkmagenta', 'DarkOrchid3'],
\ ['Darkblue', 'firebrick3'],
\ ['darkgreen', 'RoyalBlue3'],
\ ['darkcyan', 'SeaGreen3'],
\ ['darkred', 'DarkOrchid3'],
\ ['red', 'firebrick3'],
\ ]

不过,个人不建议设置 ['black','SeaGreen3'] 这一行, 因为这一行配置会导致黑颜色括号的出现,在一些Vim配色方案下, 黑色括号会很难识别。

g:rbpt_max 可配置匹配的括号对数,例如,let g:rbpt_max = 16 设置开启16对括号匹配。

:RainbowParenthesesLoadRound 选项用于开启对 圆括号 () 的多彩色高亮匹配,该选项默认被开启;

:RainbowParenthesesLoadSquare 选项用于开启对 方括号 [] 的多彩色高亮匹配;

:RainbowParenthesesLoadBraces 选项用于开启对 大括号 {} 的多彩色高亮匹配;

:RainbowParenthesesLoadChevrons 选项用于开启对 尖括号 <> 的多彩色高亮匹配。

3. rainbow_parenthsis插件使用

Vim命令行模式下使用 :RainbowParenthesesToggle 命令可打开rainbow_parenthsis插件的多色彩括号匹配功能,可以通过Vim的autocmd命令设置在打开Vim后自动启用rainbow_parenthsis插件,对应设置命令如下:

1
autocmd VimEnter * RainbowParenthesesToggle

VimEnter 事件是指Vim打开并完成所有的初始化步骤后,更多内容推荐阅读Vim命令autocmd详解及新文件自动生成注释

此外,推荐同时开启对4种扩号的多彩色高亮显示。因此,rainbow_parenthsis插件最终的推荐配置为如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let g:rbpt_colorpairs = [
\ ['brown', 'RoyalBlue3'],
\ ['Darkblue', 'SeaGreen3'],
\ ['darkgray', 'DarkOrchid3'],
\ ['darkgreen', 'firebrick3'],
\ ['darkcyan', 'RoyalBlue3'],
\ ['darkred', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['brown', 'firebrick3'],
\ ['gray', 'RoyalBlue3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['Darkblue', 'firebrick3'],
\ ['darkgreen', 'RoyalBlue3'],
\ ['darkcyan', 'SeaGreen3'],
\ ['darkred', 'DarkOrchid3'],
\ ['red', 'firebrick3'],
\ ]

let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces

附一张Vim下使用rainbow_parenthsis插件的视频教程图。

vim-rainbow-parenthsis

嗯,扫一扫就可以找到小女子我啦~