Vim:在Ruby中突出显示关键字对(def/end,do/end等)

pak*_*eha 30 ruby vim macvim

在我最近尝试过的一个基于Eclipse的编辑器(我认为它是RubyMine)中,当选择打开或关闭方法或块的Ruby关键字时,突出显示了相应的open/close关键字.类似于Vim能够突出显示相应的打开/关闭括号的方式.

例如,如果我选择了'def',它会突出显示相应的'end'.它也适用于do/end块.

这非常方便,特别是对于那些长而有时重度嵌套的Rspec文件.

有人知道如何在Vim中实现这一目标吗?

det*_*erb 17

如果您使用的是Vim 7.3,则应该使用MatchIt vim宏.

添加runtime macros/matchit.vim到您的.vimrc文件,您应该能够使用%来匹配ruby块.

您可以查看ruby的filetype插件,看看它之间会移动什么.


Oma*_*Ali 9

VIM(直到7.2)无法突出显示结束'if/end'对,因为匹配设置接受单个字符(请参阅:help matchpairs).我推荐使用折叠代替,前提是您准确缩进代码:

:set foldmethod=indent
Run Code Online (Sandbox Code Playgroud)

然后使用:zc,za以确保你在正确的块.


Tar*_*ast 2

看起来这个 vim 插件可以进行 paren 匹配:http://vimdoc.sourceforge.net/htmldoc/pi_paren.html 您可能可以深入研究该代码以了解如何将其扩展以匹配其他内容。