2010-08-02 10 views
20

Sto usando il VIM.Here è la mia situazione:Spostare un blocco di codice selezionato a destra

1111111111111 
2222222222222 
3333333333333 
4444444444444 

sopra è il codice originale, voglio fare loro come di seguito. Dopo aver selezionato queste quattro linee, cosa devo fare per spostarle?

1111111111111 
    2222222222222 
    3333333333333 
    4444444444444 

migliori saluti,

risposta

30

in modalità comando, è possibile utilizzare >> per far rientrare una sola riga. 4>> indurrà il rientro corrente e le tre righe successive.

Se non si conosce il numero di linee in anticipo (potrebbe essere piuttosto grande), è possibile utilizzare intervalli. Vai alla prima riga dell'intervallo e inserisci ma per posizionare il segnaposto A. Quindi vai all'ultima riga e inserisci >'a per indentare da qui al contrassegno A. Puoi fare ogni sorta di cose meravigliose con intervalli.

Come sono indentati dipende da un paio di cose come le impostazioni di larghezza di spostamento. Ho sempre le mie impostazioni shiftwidth e tabstop lo stesso per evitare problemi:

:set ts=4 sw=4 

(per esempio).

+5

Nitpick: si usa '>>' in modalità * normale *; la modalità comando è quando hai digitato ':' e stai scrivendo un comando. –

+3

In realtà, ho intenzione di dissentire su quello. Vi ha _always_ riferito al comando e inserisce le modalità, nonostante gli errori di wikipedia :-). I comandi dei due punti sono semplicemente comandi "ex" consentiti in modalità comando, preceduti dal prefisso ":". – paxdiablo

+0

Vim fa una distinzione tra la modalità normale e quella di comando * linea *, ed è importante ricordare che sono diversi, ai fini delle mappature, ecc. Per evitare confusione, l'aiuto di vim si riferirà sempre alla "modalità normale". Comunque ': help command-mode' ti spiegherà la modalità normale e" questa è anche conosciuta come modalità di comando ". –

6

Hit >

Questo è tutto.

3

Utilizzare la chiave >.

4

Utilizzare v per selezionare il blocco, quindi premere il tasto>.

19

Se sono già state selezionate le quattro linee in modalità visiva: > le sposterà a destra su shiftwidth. Dopo che sono stati spostati, la selezione visiva sarà scomparsa, ma è possibile indentare nuovamente tramite . (ripetere l'ultimo comando).

Se si è in modalità normale, con il cursore in qualsiasi punto della prima linea:

  • >> rientrerà quella linea,
  • 4>> sarà rientrare tutte e quattro le linee,
  • >3j farà la stessa cosa in un modo diverso (indentazione da questa linea a tre righe in basso),
  • >} indurrà tutte le righe fino alla fine del paragrafo (ovvero alla prima riga vuota, vedere :help object-motions), e
  • >ap si trattino tutte le linee per un p -aragraph (vedi :help text-objects), anche se il cursore non si trova sulla prima linea.

questo caso, è possibile ripetere questi comandi tramite . per livelli di rientro più profondi (oppure si può impostare shiftwidth appropriato).

Se il tuo file è composto da "paragrafi" (e la maggior parte del mio codice e prosa è), penso che troverai l'oggetto testo ap come il modo più comune per lavorare su blocchi di testo come questo . Puoi anche utilizzare text-objects per accelerare la selezione visiva.

0

Per me il numero deve essere dopo, come >>4, per spostarsi a destra, o prima, come 4<<, per spostare a sinistra. Io uso Vim 7.4.52.

Problemi correlati