2010-09-13 6 views
45

Ho trovato diverse risposte su come indentare più righe in vim, voglio sapere come prendere una singola riga e indentarla più di una volta. In effetti, voglio una versione più breve del seguente comando: ">>>>>>>>>>" (ovvero 10 parentesi destra "maggiore di" segni)Come faccio a indentare una singola riga più volte in vi o vim?

+10

bene, è possibile utilizzare '.' per ripetere l'ultimo comando, abbreviandolo a' >> .... ' – meagar

+0

Si potrebbe anche premere' : >>>>> ' – meagar

risposta

69

Selezionare ciò che si desidera (in genere con v o Shift + v quindi digitare 5>.

Se è necessario correggere o ripetere la stessa selezione, utilizzare gv.

+6

Perché mai + v? solo v andrà bene. – strager

+10

Solo una questione di preferenza, mi piace vedere tutta la linea selezionata. – ldog

11

È possibile selezionare la riga corrente premendo v, quindi digitare 5> per indentare la linea corrente per 5 volte, l'equivalente di premere > 10 volte.

+2

La riga attuale è 'V', non' v' – Daenyth

+6

Daenyth ha ragione, ma è discutibile. Devi solo essere in modalità visuale; in questo caso è irrilevante se selezionare la linea o meno. – Jay

8

Rientro dopo l'uso. per ripristinare il comando precedente o per annullarlo.

9

Una delle risposte a "How do I indent multiple lines quickly in vi" mi ha mostrato un trucco chiaro per rimappare > in modalità visiva per riselezionare la modalità visiva. Nella tua .vimrc ...

vnoremap < <gv 
vnoremap > >gv 

Poi ho solo selezionare la riga (o righe) che si desidera far rientrare e premere direzione appropriata tutte le volte che si vuole.

+0

È un bel trucco se si fa tutto in modalità visiva, e mi piace vedere la selezione in seguito, ma mi piace usare. dopo la modifica iniziale, che è solo in modalità normale. Sto aggiungendo questo al mio .vimrc ma mappandoli a e invece. – Pif

0

Da vim aiuto: :help >

Per spostare una linea di diversi 'shiftwidth di, utilizzare la modalità visiva o le: comandi.

Ad esempio:

Vjj4>   move three lines 4 indents to the right 
    :<<<   move current line 3 indents to the left 
    :>> 5   move 5 lines 2 indents to the right 
    :5>>   move line 5 2 indents to the right 

O semplicemente, >> e ripetere il comando con . in modalità normale.