31

In one of the Eclipse-based editors that I tried out recently (I think it was RubyMine), when a Ruby keyword that either opened or closed a method or block was selected, the corresponding open/close keyword was highlighted. 类似于 Vim 能够突出显示相应的开/关括号的方式。

例如,如果我选择了“def”,它将突出显示相应的“end”。它也适用于 do/end 块。

这真的很方便,尤其是对于那些冗长且有时嵌套很重的 Rspec 文件。

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

4

4 回答 4

17

如果你使用 Vim 7.3,你应该有MatchIt vim 宏可用。

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

你可以查看 ruby​​ 的文件类型插件,看看它会在什么之间移动。

于 2013-03-14T23:36:53.780 回答
9

VIM (直到 7.2) 不能突出显示结束的 'if/end' 对,因为匹配设置接受单个字符(参见 :help matchpairs)。我建议使用折叠代替,前提是您准确缩进代码:

:set foldmethod=indent

然后使用: zcza以确保您在正确的块中。

于 2010-08-22T00:17:48.157 回答
2

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

于 2010-08-10T17:09:48.853 回答
1

我在搜索适用于基本 ruby​​ 代码的相同问题的答案时发现了这个插件,但我没有针对 Rspec 等进行测试。

只需通过病原体安装它并添加let g:hl_matchit_enable_on_vim_startup = 1

https://github.com/vimtaku/hl_matchit.vim

于 2015-01-13T08:17:59.143 回答