2010-02-25 14 views
22

C'è un modo per indentare una selezione di righe in vim, come abbiamo negli editor di testo in cui selezioniamo un gruppo di linee e premiamo tab (o maiuscole) per rientrare/non trascinare il selezionato Linee? Sto parlando di indentazione generale e non correlato all'indentazione del codice.indentazione di un gruppo di righe in VIM

+1

Ho eseguito uno screencast su questo argomento: http://vimcasts.org/episodes/indentation-commands/ – nelstrom

+0

possibile duplicato di [Rientro più righe rapidamente in vi] (http://stackoverflow.com/questions/235839/ indent-multiple-lines-quickly-in-vi) – user

risposta

16

Utilizzare la modalità visiva come suggerisce Peter. Puoi anche utilizzare X >> dove X è il numero di righe che desideri indentare. Per esempio. 5 >> fa rientrare cinque righe dalla riga corrente e in basso.

+2

Una delle cose che faccio di più, a causa di Stack Overflow e scrittura di esempi di codice, è '> G', per rientrare dalla posizione corrente alla fine del file. Scrivo generalmente in Ruby, quindi, in realtà '> G'. Perché i Rubyists usano un rientro a due spazi e SO ne richiede quattro, ma YMMV. –

35

È possibile selezionare un insieme di linee con modalità linea visiva (tramite spostamento + V), e quindi digitare

>

e, a dedent,

<

È anche possibile aggiungere argomenti numerici. Scopri di non aver indentato abbastanza? Hit gv per riselezionare la selezione precedente.

Durante la digitazione in modalità normale, provare Ctrl +T o Ctrl +D far rientrare o dedent.

+0

Non dovrebbe essere 'outdent' invece di 'dedent'? –

+2

@Vinko dovrebbe essere, ma non lo è :) un outdent è un rientro all'indietro; una deduzione è un trattino annullato. forse dovrebbe davvero essere annullato. – Peter

+3

Non è necessario riselezionare le linee per indentare altro. Basta usare il comando punto:> ... rientri quattro volte. –

3

Come suggerito dalle altre risposte è possibile utilizzare >. In alternativa, si può automaticamente correttamente indentare il codice selezionando l'insieme di linea in modo visivo (usando spostamento + V), e quindi utilizzando =, o utilizzando == per far rientrare la riga corrente.

8

uso le seguenti mapping far rientrare/unindent:

vmap <TAB> >gv 
vmap <S-TAB> <gv 

Usare TAB per il rientro e shift-TAB per unindent linee selezionate visivamente.

Se è selezionato un blocco Vim fa rientrare/separare ciò che è corretto all'inizio del blocco .

+0

Funziona Perfetto anche per me! @ MacVim –

Problemi correlati