如何使用Vim从do跳转到Ruby块的末尾?

如何使用Vim从do跳转到Ruby块的末尾?,ruby,vim,Ruby,Vim,我正在使用vim进行ruby、php和perl开发。有一个快捷方式%可以从块的开头(子程序/函数/方法/如果)跳到结尾,反之亦然。 对我来说,ruby中do/end标记上的%不起作用 我怎样才能用vim做到这一点 允许匹配的不仅仅是括号和注释。可以找到ruby版本。使用~/.vim/ftplugin/ruby.vim中的代码:) “Matchit支持: 如果存在(“加载匹配”) 如果!存在(“b:匹配单词”) 设b:match_ignorecase=0 让b:匹配单词= \“\%(\%(\%(^

我正在使用vim进行ruby、php和perl开发。有一个快捷方式%可以从块的开头(子程序/函数/方法/如果)跳到结尾,反之亦然。 对我来说,ruby中do/end标记上的%不起作用

我怎样才能用vim做到这一点

允许匹配的不仅仅是括号和注释。可以找到ruby版本。

使用~/.vim/ftplugin/ruby.vim中的代码:)

“Matchit支持:
如果存在(“加载匹配”)
如果!存在(“b:匹配单词”)
设b:match_ignorecase=0
让b:匹配单词=

\“\%(\%(\%(^\\\[;=]\)\s*\)\@%跳转到匹配的括号或大括号,这就是它在ruby中不起作用的原因。这仍然是一个好问题,我想我会在语法/折叠表达式上搭便车,但我没有真正的线索……:)请在这里查看接受的答案:这允许您使用
%
在do end之间跳转,而无需安装任何其他插件。该插件非常棒,对HTML标记也非常有用。对于do和end,我有一个问题。我可以从end->do跳转,但我不能从这个位置跳转到end,因为do不在开始我认为这是一句话。请注意,在Vim的最新版本中,matchit默认包括在内,据我所知,ruby-matchit.Vim只是破坏了一些东西。不要安装任何东西。您只需要在.vimrc中添加以下内容(由于兼容性问题,默认情况下不启用):
运行时宏/matchit.Vim
,如果有人使用[Vundle](),只需将
Bundle'vim scripts\matchit.zip'
添加到.vimrc并运行BundleInstall。
" Matchit support:
if exists("loaded_matchit")
  if !exists("b:match_words")
    let b:match_ignorecase = 0
    let b:match_words =
\ '\%(\%(\%(^\|[;=]\)\s*\)\@<=\%(class\|module\|while\|begin\|until\|for\|if\|unless\|def\|case\)\|\<do\)\>:' .
\ '\<\%(else\|elsif\|ensure\|rescue\|when\)\>:\%(^\|[^.]\)\@<=\<end\>'
  endif
endif