Vim

MatchIt

由于 VIM 是用 C 语言编写的,因此许多功能都假设使用类似 C 语言的语法。默认情况下,如果你的光标在 {#endif , 就可以使用 % 跳转到与之匹配的 }#ifdef

VIM 自带了一个名为 matchit.vim 的插件,但是默认没有启用。启用后可以用 % 在 HTML 相匹配的标签或 VimL 的 if/else/endif 块之间进行跳转,它还带来了一些新的命令。

在 VIM 8 中安装

" vimrc
packadd! matchit

在 VIM 7 或者更早的版本中安装

"vimrc
runtime macros/matchit.vim

由于 matchit 的文档很全面,我建议安装以后执行一次下面的命令:

:!mkdir -p ~/.vim/doc
:!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/doc
:helptags ~/.vim/doc

简短的介绍

至此这个插件已经可以使用了。 参考 :h matchit-intro 来获得支持的命令以及 :h matchit-languages 来获得支持的语言。你可以很方便的定义自己的匹配对,如:

autocmd FileType python let b:match_words = '\<if\>:\<elif\>:\<else\>'

之后你就可以在任何的 Python 文件中使用 % (向前)或 g% (向后)在这三个片断之间跳转了。

帮助文档:

:h matchit-install
:h matchit
:h b:match_words