Hacking Vim: rainbow(09)

摘要

本文介绍一个括号匹配增强工具 —— rainbow, 对于读、写 Lisp 或者各种括号横飞的语言,非常高效.

简介

众所周知,最复杂的代码都是由一堆乱七八糟的括号组成。这款插件通过以不同的颜色展示不同层次的括号,致力于帮助你阅读这样的复杂代码(Copy自插件官网).

先睹为快

lisp(注意配对括号的颜色):

Hacking Vim: rainbow(09)_第1张图片

更多语言的预览效果,请移步 https://github.com/luochen1990/rainbow/blob/demo/more.md

安装

Note: 请确保已经正确安装了 Pathogen 插件,如果没有安装,请参考 Hacking Vim: 插件管理器Pathogen(02)

本篇文章的代码在 https://github.com/NsLib/blog-vim-proj/tree/rainbow

cd ~/.vim/bundle
git clone https://github.com/luochen1990/rainbow --depth=1
rm -rf ~/.vim/bundle/rainbow/.git

配置

这里给出的是我的配置,可以根据自己的喜好定制:

" rainbow 对于不同的括号,渲染成不同颜色
let g:rainbow_active = 1 let g:rainbow_operators=2 let g:rainbow_conf = { \ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'], \ 'ctermfgs': ['lightgray', 'lightblue', 'lightmagenta', 'lightcyan'], \ 'operators': '_,_', \ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'], \ 'separately': { \ '*': {}, \ 'lisp': { \ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'], \ 'ctermfgs': ['darkgray', 'darkblue', 'darkmagenta', 'darkcyan', 'darkred', 'darkgreen'], \ }, \ 'vim': { \ 'parentheses': [['fu\w* \s*.*)','endfu\w*'], ['for','endfor'], ['while', 'endwhile'], ['if','_elseif\|else_','endif'], ['(',')'], ['\[','\]'], ['{','}']], \ }, \ 'tex': { \ 'parentheses': [['(',')'], ['\[','\]'], ['\\begin{.*}','\\end{.*}']], \ }, \ 'css': 0, \ 'stylus': 0, \ } \}

下面的说明摘自官网:

  • ‘guifgs’: GUI界面的括号颜色(将按顺序循环使用)
  • ‘ctermfgs’: 终端下的括号颜色(同上,插件将根据环境进行选择)
  • ‘operators’: 描述你希望哪些运算符跟着与它同级的括号一起高亮(见vim帮助 :syn-pattern)
  • ‘parentheses’: 描述哪些模式将被当作括号处理,每一组括号由两个vim正则表达式描述
  • ‘separately’: 针对文件类型(由&ft决定)作不同的配置,未被单独设置的文件类型使用*下的配置,值为0表示仅对该类型禁用插件
  • 省略某个字段以使用默认设置

总结

这个插件主要用来提升我们读代码的效率,更容易的看清楚括号间的关系,一句话,谁用谁知道 XD

你可能感兴趣的:(vi,vim)