2009-10-27 10 views
12

Używam vim do rozwoju ruby, php i perl. Istnieje skrót od % do skoku od początku bloku (podprogram/funkcja/metoda/jeśli) do końca i na odwrót. U mnie na % na znaczniku do/end w ruby ​​nie działa.Jak przeskakiwać od do do końca bloku Ruby używając Vima?

Jak mogę to zrobić w vimie?

+1

% skacze do wspornika dopasowującego lub klamry, to dlaczego to nie działa w Ruby . Ciągle dobre pytanie, przypuszczam, że chciałbym hitchhike na składnię/składanie wyrażeń, ale nie mam prawdziwej wskazówki ... :) – falstro

Odpowiedz

11

matchit plugin pozwala dopasować więcej niż tylko nawiasy i komentarze. Wersja ruby ​​można znaleźć here.

+0

Wtyczka jest świetna, również bardzo pomocne dla tagów HTML. Z do i koniec mam problem. Mogę skakać od końca -> robić, ale nie mogę skakać z tej pozycji do końca, ponieważ nie jest na początku linii, myślę. – gustavgans

+6

Zauważ, że w bardziej aktualnych wersjach Vima, matchit jest domyślnie włączony, i o ile wiem, ruby-matchit.vim po prostu psuje rzeczy. Nie instaluj niczego. Wszystko, co chcesz, jest następujące w twoim .vimrc (domyślnie nie jest włączone z powodu problemów ze zgodnością): 'runtime macros/matchit.vim' –

+1

Jeśli ktoś używa [Vundle] (https://github.com/gmarik/Vundle. vim), po prostu dodaj 'Bundle 'vim-scripts \ matchit.zip'' do twojego .vimrc i uruchom BundleInstall. –

6

z matchit plugin i ten kod w ~/.vim/ftplugin/ruby.vim działa teraz :)

" 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 
Powiązane problemy