tags:

views:

243

answers:

2

Hi

I'm using vim for ruby, php and perl development. There is the shortcut % to jump from the begin of a block (subroutine/function/method/if) to the end and vice versa. For me a % on a do/end tag in ruby doesn't work.

How can I do that with vim?

+6  A: 

The matchit plugin allows matching more than just parentheses and comments. A ruby version can be found here.

soulmerge
the plugin is great, also very helpful for HTML tags. With do and end I have a problem. I can jump from end -> do, but I can't jump from this postion return to end, because do isn't on the beginning of the line I think.
gustavgans
+2  A: 

with the matchit plugin and this code in ~/.vim/ftplugin/ruby.vim it works now :)

" 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
gustavgans