2009-05-11 4 views
7

J'édite généralement des fichiers RUBY dans VIM. Je veux que les méthodes (def ... end) se replient. Pourriez-vous s'il vous plaît m'aider à définir la syntaxe de pli?Quel pli dois-je utiliser dans VIM?

+0

Pouvez-vous clarifier votre question? Je ne vois pas la connexion entre le shiftwidth, ruby, et la syntaxe de pli? Ils me semblent être trois éléments indépendants. –

+0

Oui je ne peux pas le voir aussi, s'il vous plaît clarifier ;-) –

Répondre

18

En supposant que vous avez déjà la syntaxe Ruby mettant en lumière la configuration et de travail, utilisez le mode syntax pour le pliage:

set foldmethod=syntax 

Cela vous donnera plis sur class .. end et def .. end, etc.

3

J'aime que tout se plie par défaut, et ceci ici vous permettra de régler tout un tas de choses liées au pliage. Je fais principalement du codage Perl et C++ et je trouve que ça marche bien avec ça. Le pliage et le dépliage sont mappés sur la touche espace.

Voici ce que je vais dans mon 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

Je pense que vous mettez le curseur sur la première ligne, puis zfnj où n est le nombre de lignes à plier (donc à plier 10 lignes vous conseillerai zf10j). Je pense qu'il reconnaîtra aussi la syntaxe de PHP comme je le fais zf} pour se replier sur le crochet de fermeture. Je ne code pas dans Ruby, donc je ne sais pas si cela fonctionne dans Ruby.

Désormais, pour basculer, zo s'ouvrira et zc se fermera.

Questions connexes