简体   繁体   中英

How to jump from do to end of a Ruby block using Vim?

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?

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM