2009-05-11 19 views
7

Di solito modifico file RUBY in VIM. Voglio che i metodi (def ... end) si pieghino. Potresti per favore aiutarmi a definire la sintassi del fold?Quale Fold dovrei usare in VIM?

+0

Puoi chiarire la tua domanda? Non vedo la connessione tra la sintassi di shiftwidth, ruby ​​e fold? Sembrano tre oggetti non correlati a me. –

+0

Sì, non riesco a vederlo, per favore chiarisci ;-) –

risposta

18

Supponendo che hai già sintassi di Ruby evidenziazione di installazione e di lavoro, utilizzare la modalità syntax per la piegatura:

set foldmethod=syntax 

Questo vi darà pieghe sulla class .. end e def .. end, ecc

3

Mi piace avere tutto che si piega per impostazione predefinita, e questo qui ti permetterà di modificare un sacco di cose relative alla piegatura. Faccio principalmente la codifica Perl e C++ e trovo che funzioni bene. La piegatura e lo spiegamento sono mappati sulla chiave dello spazio.

Ecco quello che ho intenzione nel mio vimrc:

" Folding stuff 
    hi Folded guibg=red guifg=Red cterm=bold ctermbg=DarkGrey ctermfg=lightblue 
    hi FoldColumn guibg=grey78 gui=Bold guifg=DarkBlue 
    set foldcolumn=2 
    set foldclose= 
    set foldmethod=indent 
    set foldnestmax=10 
    set foldlevel=0 
    set fillchars=vert:\|,fold:\ 
    set foldminlines=1 
" Toggle fold state between closed and opened. 
    " 
    " If there is no fold at current line, just moves forward. 
    " If it is present, reverse it's state. 
    fu! ToggleFold() 
    if foldlevel('.') == 0 
     normal! l 
    else 
     if foldclosed('.') < 0 
      . foldclose 
     else 
      . foldopen 
     endif 
    endif 
    echo 
    endf 

" Map this function to Space key. 
    noremap <space> :call ToggleFold()<CR> 
0

Penso che si mette il cursore sulla prima riga poi zfnj dove n è il numero di linee di piegare (in modo da piegare 10 righe si merion zf10j). Penso che riconoscerà anche la sintassi così come in PHP I do zf} per passare alla parentesi di chiusura. Non codice in Ruby, quindi non so se questo funziona in Ruby.

Da questo momento in avanti, per attivare, zo si aprirà e zc si chiuderà.