我最近尝试了一款基于Eclipse的编辑器(我想它是RubyMine),当选择一个打开或关闭方法或块的Ruby关键字时,相应的打开/关闭关键字会被突出显示。就像Vim能够突出显示对应的打开/关闭括号一样。
例如,如果我选择了'def',它会突出显示相应的'end'。它还适用于do/end块。
这真的很方便,特别是对于那些长而有时嵌套严重的Rspec文件。
有人知道如何在Vim中实现这一点吗?
runtime macros/matchit.vim
添加到您的.vimrc
文件中,然后您就可以使用%来匹配ruby块。:set foldmethod=indent
和 zc
+1好多了。 - nothing-special-here在VIM(直到7.2版)中,无法突出显示“if/end”关闭对,因为匹配设置仅接受一个字符(请参见:help matchpairs)。 我建议改用折叠,前提是您准确缩进代码:
:set foldmethod=indent
然后使用:zc
,za
确保你在正确的块中。
let g:hl_matchit_enable_on_vim_startup = 1
。
https://github.com/vimtaku/hl_matchit.vim
看起来这个vim插件可以匹配括号: http://vimdoc.sourceforge.net/htmldoc/pi_paren.html 你可以深入研究那些代码以查看如何扩展其匹配其他内容。
:help matchpairs
所述:目前仅允许单字节字符对,并且它们必须不同。 - KARASZI István
def
...end
和class
..end
之间跳转。对于你想要的东西,逻辑应该是相同的。http://vim.sourceforge.net/scripts/script.php?script_id=290 - Telemachusx
...end
配对非常有用的 Vim 插件是 Tim Pope 的endwise
,它会在你开始需要end
的部分时自动插入它:http://github.com/tpope/vim-endwise - Telemachusdef
和end
之间进行%
导航;您可以使用常规的matchit.vim,它“允许您配置 % 匹配的不仅仅是单个字符”,并且在Ruby中对我来说可以直接使用。它还说:“自 vim 6.0 以来,matchit.vim 已经包含在标准的vim分发版本中,在macros/目录下”,但我没有它。无论如何,它在这里:http://www.vim.org/scripts/script.php?script_id=39 - Nathan Long