Rientra rapidamente più righe in vi


2158

Dovrebbe essere banale e potrebbe anche esserci di aiuto, ma non riesco a capire come navigare. Come posso rientrare più righe rapidamente in vi?

Risposte:


2552

Usa il >comando Per far rientrare cinque linee, 5>>. Per contrassegnare un blocco di linee e rientrare, Vjj>per rientrare tre linee (solo Vim). Per rientrare in un blocco di parentesi graffe, posiziona il cursore su una delle parentesi graffe e usa >%o da qualsiasi punto all'interno del blocco >iB.

Se stai copiando blocchi di testo e devi allineare il rientro di un blocco nella sua nuova posizione, usa ]pinvece di solo p. Ciò allinea il blocco incollato con il testo circostante.

Inoltre, l' shiftwidthimpostazione consente di controllare il numero di spazi da rientrare.


77
Uso> i} (blocco {} interno indent). Funziona in vim. Non sono sicuro che funzioni in vi.
R. Martinho Fernandes,

11
Il mio problema (in gVim) è che il comando> rientra molto più di 2 spazi (voglio solo due spazi ma> rientro qualcosa come 5 spazi)
Kamran Bigdely,

28
@Kamran: vedi l' shiftwidthimpostazione per il modo di cambiarlo.
Greg Hewgill

4
@MattStevens: Puoi trovare una discussione estesa su questo fenomeno qui: meta.stackexchange.com/questions/9731/…
Greg Hewgill

5
Spesso indento più volte i blocchi visivi di seguito, come correggere alcuni tag incollati in un file XML. Invece di riselezionare il blocco in modalità visiva ogni volta, si può usare 'gv' per riutilizzare l'ultimo blocco visivo. Riferimento superuser.com/questions/220666/…
David Mann

958

Questa risposta riassume le altre risposte e commenti di questa domanda e aggiunge ulteriori informazioni basate sulla documentazione di Vim e sul wiki di Vim . Per concisione, questa risposta non distingue tra comandi specifici di Vi e Vim.

Nei comandi seguenti, "rientro" indica " rientri in base alle impostazioni di rientro ". shiftwidthè la variabile principale che controlla il rientro.

Comandi generali

>>   Indent line by shiftwidth spaces
<<   De-indent line by shiftwidth spaces
5>>  Indent 5 lines
5==  Re-indent 5 lines

>%   Increase indent of a braced or bracketed block (place cursor on brace first)
=%   Reindent a braced or bracketed block (cursor on brace)
<%   Decrease indent of a braced or bracketed block (cursor on brace)
]p   Paste text, aligning indentation with surroundings

=i{  Re-indent the 'inner block', i.e. the contents of the block
=a{  Re-indent 'a block', i.e. block and containing braces
=2a{ Re-indent '2 blocks', i.e. this block and containing block

>i{  Increase inner block indent
<i{  Decrease inner block indent

È possibile sostituire {con }o B, ad esempio, =iBè un comando di rientro di blocco valido. Dai un'occhiata a "Rientra un blocco di codice" per un bell'esempio per provare questi comandi.

Inoltre, ricordalo

.    Repeat last command

, quindi i comandi di rientro possono essere ripetuti facilmente e comodamente.

Rientro dei file completi

Un'altra situazione comune richiede la correzione del rientro in un file di origine:

gg=G  Re-indent entire buffer

È possibile estendere questa idea a più file:

" Re-indent all your C source code:
:args *.c
:argdo normal gg=G
:wall

O più buffer:

" Re-indent all open buffers:
:bufdo normal gg=G:wall

In modalità visiva

Vjj> Visually mark and then indent three lines

In modalità inserimento

Questi comandi si applicano alla riga corrente:

CTRL-t   insert indent at start of line
CTRL-d   remove indent at start of line
0 CTRL-d remove all indentation from line

Comandi Ex

Sono utili quando si desidera rientrare in un intervallo specifico di linee, senza spostare il cursore.

:< and :> Given a range, apply indentation e.g.
:4,8>   indent lines 4 to 8, inclusive

Rientro mediante marcatori

Un altro approccio è tramite marcatori :

ma     Mark top of block to indent as marker 'a'

... sposta il cursore sulla posizione finale

>'a    Indent from marker 'a' to current location

Variabili che governano il rientro

Puoi impostarli nel tuo file .vimrc .

set expandtab       "Use softtabstop spaces instead of tab characters for indentation
set shiftwidth=4    "Indent by 4 spaces when using >>, <<, == etc.
set softtabstop=4   "Indent by 4 spaces when pressing <TAB>

set autoindent      "Keep indentation from previous line
set smartindent     "Automatically inserts indentation in some cases
set cindent         "Like smartindent, but stricter and more customisable

Vim ha un rientro intelligente basato sul tipo di file. Prova ad aggiungere questo al tuo .vimrc:

if has ("autocmd")
    " File type detection. Indent based on filetype. Recommended.
    filetype plugin indent on
endif

Riferimenti


13
Sia questa risposta che quella sopra sono state fantastiche. Ma l'ho fatto +1 perché mi ha ricordato l'operatore 'punto', che ripete l'ultimo comando. Ciò è estremamente utile quando è necessario rientrare in un intero blocco diversi spazi di spostamento (o rientranze) senza dover continuare a premere >}. Grazie a lungo
Tra il

1
5 >> Rientra 5 righe: questo comando fa rientrare la quinta riga, non 5 righe. Ciò potrebbe essere dovuto alle mie impostazioni VIM o la tua formulazione non è corretta?
Wipqozn,

1
@Wipqozn - È strano. Indenta sicuramente le prossime cinque righe per me, testate su Vim 7.2.330.
ire_and_curses,

8
> 42gg ​​Rientro da dove ti trovi alla linea 42.
Steve

Ottimo riassunto! Si noti inoltre che "indent inside block" e "indent all block" (<i {> a {etc.) funziona anche con parentesi e parentesi:> a (<i] ecc. (E mentre ci sono, in oltre a quelli di <>, funzionano anche con d, c, y ecc.)
aqn

123

Una grande selezione sarebbe:

gg=G

È veramente veloce e tutto viene indentato ;-)


1
Ho un file XML e ho attivato l'evidenziazione della sintassi. Digitando si gg=Gposiziona ogni riga a partire dalla posizione 1. Tutti gli spazi bianchi sono stati rimossi. C'è qualcos'altro di specifico in XML?
chiede il

2
Penso che set cindentdovrebbe essere in vimrc o dovrebbe funzionare :set cindentprima di eseguire quel comando
Amanuel Nega,

3
Penso che cindent debba essere impostato per primo. e @asgs penso che questo funzioni solo per i linguaggi di programmazione cstyle.
Amanuel Nega,

110

Prova anche questo per l' indentazione con rientro C. Fare :help =per ulteriori informazioni:

={

Ciò inserirà automaticamente il blocco di codice corrente in cui ti trovi.

O semplicemente:

==

per rientrare automaticamente nella riga corrente.


2
non funziona per me, scarica il mio cursore sulla riga sopra la parentesi graffa di apertura del "blocco di codice corrente in cui mi trovo".
underscore_d

79

Tasti premuti per più persone visive:

  1. Entra in modalità comando:
    Escape

  2. Spostati all'inizio dell'area per rientrare:
    hjkl

  3. Inizia un blocco:
    v

  4. Spostati alla fine dell'area per rientrare:
    hjkl

  5. (Facoltativo) Digitare il numero di livelli di rientro desiderati
    0..9

  6. Eseguire il rientro sul blocco:
    >


2
Questo è fantastico, ma usa spazi e non tabulazioni. Qualche modo possibile per risolvere questo problema?
Shane Reustle

12
Se utilizza gli spazi anziché le schede, è probabilmente perché il rientro è impostato per utilizzare gli spazi. =).
Kent Fredric,

4
Quando l'opzione 'expandtab' è disattivata (questa è l'impostazione predefinita) Vim usa <Tab> s il più possibile per creare il rientro. (: help:>)
Kent Fredric,

1
L'unica impostazione vim relativa a tabulazione / spazio che ho modificato è: set tabstop = 3. In realtà lo sta inserendo ogni volta che uso >>: "<tab> <spazio> <spazio>". Lo stesso con il rientro di un blocco. Qualche idea?
Shane Reustle,

3
Le tre impostazioni che si desidera cercare "spazi vs tab" sono 1. tabstop 2. shiftwidth 3. expandtab. Probabilmente hai "shiftwidth = 5 noexpandtab", quindi una "tab" è 3 spazi e un livello di rientro è "5" spazi, quindi costituisce il 5 con 1 tab e 2 spazi.
Kent Fredric,

66

Il padrone di tutti i comandi è
gg=G

Questo rientra l'intero file!

Di seguito sono riportati alcuni dei comandi semplici ed eleganti utilizzati per indentare rapidamente le linee in Vim o gVim.

Per rientrare nella riga corrente
==

Per rientrare in tutte le righe sotto la riga corrente

=G

Per rientrare le nrighe sotto la riga corrente

n==

Ad esempio, per rientrare 4 righe sotto la riga corrente

4==

Per rientrare in un blocco di codice, vai su una delle parentesi graffe e usa il comando

=%

Questi sono i comandi più semplici ma potenti per indentare più righe.


3
Questo è giusto vim, no vi.
Rojomoke,

3
Non sulle mie scatole Solaris o AIX. La chiave uguale è sempre stata una delle mie assegnazioni macro ad hoc standard. Sei sicuro di non guardare un oggetto a vimcui è stato collegato vi?
Rojomoke,

3
Sì, su Linux, vi è quasi sempre un collegamento a vim. Prova a eseguire il comando: ve all'interno di vi.
Rojomoke,

4
Adoro questo tipo di risposte: chiare, precise e succinte. Ha lavorato per me in Debian Jessie. Grazie, @SJain
digitai

1
Da quando uso vim, non vi, piuttosto entusiasta, questa risposta è qui. Grazie.
Dan Nissenbaum,

66

Oltre alla risposta già fornita e accettata, è anche possibile posizionare un marker e quindi rientrare tutto dal cursore corrente al marker.

Quindi, inserisci madove vuoi la parte superiore del blocco rientrato, cursore verso il basso per quanto ti serve e quindi digita >'a(nota che " a" può essere sostituito con qualsiasi nome di marcatore valido). Questo a volte è più facile di 5>>o vjjj>.


1
Questo è davvero utile Dovrò cercare ciò che tutto funziona con questo. So d'a e ya, cos'altro?
user606723

2
Questo è molto utile in quanto evita la necessità di contare quante righe vuoi rientrare.
ziggy,

29

Vai all'inizio del testo

  • premere vper la modalità visiva.
  • utilizzare up/ downfreccia per evidenziare il testo.
  • premere =per rientrare in tutte le righe evidenziate.

28

Oltre alle soluzioni offerte, mi piace fare le cose un paragrafo alla volta >}


2
Sì, e questo è il motivo per cui uno dei miei grandi problemi è rappresentato da spazi bianchi su una linea altrimenti vuota: confondono la nozione di "paragrafo" di Vim.
aqn

28

Quando selezioni un blocco e lo usi >per rientrare, questo rientra nella modalità normale. Ho questo nel mio file .vimrc:

vnoremap < <gv

vnoremap > >gv

Ti consente di rientrare nella selezione tutte le volte che vuoi.


17
Per rientrare nella selezione più volte, è sufficiente premere. per ripetere il comando precedente.
Sundar - Ripristina Monica il

2
Il problema con. in questa situazione è che devi muovere le dita. Con la soluzione di @ mike (la stessa che uso) hai già le dita sul tasto del rientro e puoi continuare a battere per continuare a rientrare invece di cambiare e fare qualcos'altro. L'uso del periodo richiede più tempo perché devi muovere le mani e richiede più pensiero perché è una seconda operazione diversa.
Masukomi,

21

Supponiamo di utilizzare 2 spazi per rientrare nel codice. Genere:

:set shiftwidth=2
  • Digita v(per accedere alla modalità di modifica del blocco visivo)
  • Spostare il cursore con i tasti freccia (o con h/ j/ k/ l) per evidenziare le righe che si desidera rientrare o rimuovere.

Poi:

  • Digitare >per rientrare una volta (2 spazi).
  • genere 2> per rientrare due volte (4 spazi).
  • Digitare 3>per rientrare tre volte (6 spazi).
  • ...
  • Digitare <unindent una volta (2 spazi).
  • Digitare 2<unindent due volte (4 spazi).
  • Digitare 3<su unindent tre volte (6 spazi).
  • ...

Ti viene l'idea.

(Le righe vuote non saranno rientrate, il che penso sia abbastanza carino. )


Ho trovato la risposta nella documentazione (g) vim per i blocchi di rientro:

:help visual-block
/indent

Se si desidera dare un conteggio al comando, eseguire questa operazione appena prima di digitare il carattere operatore: "v {move-around} 3>" (sposta le righe 3 rientri a destra).


18

La bellezza dell'interfaccia utente di Vim è la sua coerenza. I comandi di modifica sono costituiti dal comando e da una mossa del cursore. I movimenti del cursore sono sempre gli stessi:

  • Hnella parte superiore dello schermo, Lnella parte inferiore, Mal centro
  • nG per andare alla riga n , Gda solo alla fine del file, ggall'inizio
  • nper passare alla corrispondenza di ricerca successiva, Nalla precedente
  • } alla fine del paragrafo
  • % alla parentesi corrispondente successiva, tra parentesi o tipo di tag
  • enter alla riga successiva
  • 'xper contrassegnare x dove x è una lettera o un'altra '.
  • molti altri, incluso we Wper parola, $oppure 0a punte della linea, ecc., che non si applicano qui perché non sono movimenti di linea .

Quindi, per usare vim devi imparare a spostare il cursore e ricordare un repertorio di comandi come, ad esempio, >per rientrare (e< "superamento").

Così, per il rientro delle linee dalla posizione del cursore alla parte superiore dello schermo si fa >H, >Gper far rientrare alla fine del file.

Se invece di digitare digiti >H, stai dHeliminando lo stesso blocco di righe,cH per sostituirlo, ecc.

Alcuni movimenti del cursore si adattano meglio con comandi specifici. In particolare, il %comando è utile per indentare un intero blocco HTML o XML. Se il file ha la sintassi evidenziata ( :syn on), quindi impostare il cursore nel testo di un tag (come, nella "i" di <div> e l'immissione >%rientrerà fino al tag di chiusura </div>.

Ecco come funziona Vim: bisogna ricordare solo i movimenti del cursore e i comandi e come mescolarli. Quindi la mia risposta a questa domanda sarebbe "andare a un'estremità del blocco di linee che si desidera rientrare, quindi digitare il >comando e un movimento all'altra estremità del blocco" se il rientro viene interpretato come spostamento delle linee, =se rientro viene interpretato come nella bella stampa.


2
Direi che vi / vim è per lo più coerente. Ad esempio, D non si comporta come S e Y! :)
aqn

14

Fai questo:

$vi .vimrc

E aggiungi questa riga:

autocmd FileType cpp setlocal expandtab shiftwidth=4 softtabstop=4 cindent

Questo è solo per un file cpp. Puoi farlo per un altro tipo di file, anche semplicemente modificando il tipo di file ...


13

È possibile utilizzare il norm icomando per inserire un determinato testo all'inizio della riga. Per inserire 10 spazi prima delle righe 2-10:

:2,10norm 10i 

Ricorda che ci deve essere un carattere spazio alla fine del comando - questo sarà il personaggio che vogliamo aver inserito. Possiamo anche rientrare in una riga con qualsiasi altro testo, ad esempio per rientrare in ogni riga di un file con cinque caratteri di sottolineatura:

:%norm 5i_

O qualcosa di ancora più elegante:

:%norm 2i[ ]

Un esempio più pratico è commentare il codice Bash / Python / etc con il carattere #:

:1,20norm i#

Per rientrare nel rientro usare xinvece di i. Ad esempio, per rimuovere i primi 5 caratteri da ogni riga:

:%norm 5x

1
questo inizia dal lato sinistro del file ... non la posizione corrente del blocco
Eliethesaiyan

12

Un modo rapido per farlo usando VISUAL MODE utilizzando lo stesso processo di commentare un blocco di codice.

Ciò è utile se si preferisce non modificare shiftwidtho utilizzare alcuna setdirettiva ed è abbastanza flessibile da funzionare con TABS o SPAZI o qualsiasi altro personaggio.

  1. Posiziona il cursore all'inizio sul blocco
  2. v per passare a -- VISUAL MODE --
  3. Seleziona il testo da rientrare
  4. Digitare :per passare al prompt
  5. Sostituzione con 3 spazi iniziali:

    :'<,'>s/^/ /g

  6. O sostituendo con le schede principali:

    :'<,'>s/^/\t/g

  7. Breve spiegazione:

    '<,'> - All'interno dell'intervallo selezionato visivamente

    s/^/ /g - Inserire 3 spazi all'inizio di ogni riga nell'intero intervallo

    (o)

    s/^/\t/g- Inserisci Taball'inizio di ogni riga nell'intero intervallo


12

>}o >{rientro dalla riga corrente fino al paragrafo successivo

<}o <{stesso indentazione


11

Mi piace contrassegnare il testo per il rientro:

  1. vai all'inizio della riga di testo quindi digita ma( aè l'etichetta dal 'm'ark: potrebbe essere qualsiasi lettera)
  2. vai alla fine del testo e digita mz(di nuovo, zpotrebbe essere una lettera qualsiasi)
  3. :'a,'z>o :'a,'z<indenterà o esagererà (è una parola?)
  4. Ecco! Il testo viene spostato (le righe vuote rimangono vuote senza spazi)

PS: è possibile utilizzare la :'a,'ztecnica per contrassegnare un intervallo per qualsiasi operazione (d, y, s ///, ecc.) In cui è possibile utilizzare linee, numeri o %.


10

:help left

In ex modepuoi usare :lefto :leper allineare le linee di un importo specificato. Specificamente, :leftsarà Sinistra linee di allineamento nel [range]. Imposta il rientro nelle righe su [rientro] (impostazione predefinita 0).

:%le3oppure :%le 3 oppure :%left3o :%left 3allineerà l'intero file riempiendolo con tre spazi.

:5,7 le 3 allineerà le linee da 5 a 7 riempiendole con tre spazi.

:lesenza alcun valore o :le 0rimarrà allineato con un'imbottitura pari a 0.

Funziona con Vim e gVim.


1
Fantastico, proprio quello che stavo cercando (un modo per inserire un numero specifico di spazi - 4 spazi per il codice di markdown - per sovrascrivere il mio rientro normale). Nel mio caso volevo rientrare un numero specifico di linee in modalità visiva, quindi shift-v per evidenziare le linee, quindi :'<,'>le4inserire gli spazi. Grazie!
Sottorizione

9

Per me, la soluzione MacVim (Visual) era, selezionare con il mouse e premere ">", ma dopo aver messo le seguenti righe in "~ / .vimrc" poiché mi piacciono gli spazi anziché le schede:

set expandtab
set tabstop=2
set shiftwidth=2

Inoltre è utile poter chiamare MacVim dalla riga di comando (Terminal.app), quindi dal momento che ho la seguente directory di supporto "~ / bin", dove inserisco uno script chiamato "macvim":

#!/usr/bin/env bash
/usr/bin/open -a /Applications/MacPorts/MacVim.app $@

E ovviamente in "~ / .bashrc":

export PATH=$PATH:$HOME/bin

MacPorts fa molto casino con "~ / .profile", quindi la variabile d'ambiente PATH può diventare piuttosto lunga.


9

5== indenterà cinque righe dalla posizione corrente del cursore.

Quindi puoi digitare qualsiasi numero prima ==. Indenterà il numero di righe. Questo è in modalità comando.

gg=G indenterà l'intero file dall'alto verso il basso.


9

Non ho trovato un metodo che utilizzo nei commenti, quindi lo condividerò (penso solo Vim):

  1. Esc per entrare in modalità comando
  2. Passa al primo carattere dell'ultima riga che vuoi rientrare
  3. Ctrl+ Vper avviare la selezione del blocco
  4. Passa al primo carattere della prima riga che vuoi rientrare
  5. Shift+ Iper accedere alla modalità di inserimento speciale
  6. Digita tutti gli spazi / schede di cui hai bisogno per rientrare (due per esempio
  7. Stampa Esce spazi appariranno in tutte le righe

Ciò è utile quando non si desidera modificare le impostazioni di rientro / tabulazione vimrco ricordare di modificarle durante la modifica.

Per dissentire uso lo stesso blocco Ctrl+ Vseleziona per selezionare gli spazi ed eliminarlo con D.


9

Non so perché sia ​​così difficile trovare una risposta semplice come questa ...

Io stesso ho dovuto lottare molto per saperlo. È molto semplice:

  • Modifica il tuo .vimrcfile nella home directory.
  • Aggiungi questa linea

    set cindent
    

    nel file in cui si desidera rientrare correttamente.

  • In modalità normale / comando digitare

    10==   (This will indent 10 lines from the current cursor location)
    gg=G   (Complete file will be properly indented)
    

8
:line_num_start,line_num_end>

Per esempio,

14,21> shifts line number 14 to 21 to one tab

Aumenta il simbolo '>' per altre schede.

Per esempio,

14,21>>> for three tabs

1
Esistono chiaramente molti modi per risolverlo, ma questo è il più semplice da implementare, poiché i numeri di riga mostrano di default in vim e non richiede matematica.
HoldOffHunger

@HoldOffHunger I numeri di riga non vengono visualizzati per impostazione predefinita. È necessario utilizzare :set numberper attivare / disattivare i numeri di riga (sono disattivati per impostazione predefinita) o inserire set numbervimrc.
DryLabRebel

7

Usando molto Python, mi ritrovo a dover ricorrere spesso a spostare i blocchi di più di un rientro. Puoi farlo utilizzando uno dei metodi di selezione dei blocchi, quindi inserisci il numero di rientri che desideri saltare subito prima del>

Ad esempio, V5j3>indenterà cinque righe tre volte, ovvero 12 spazi se si utilizzano quattro spazi per i rientri.


7

Per indentare ogni riga in un tipo di file Esce quindi G=gg.


6

Come indentare il codice evidenziato in vi immediatamente con un numero di spazi:

Opzione 1: rientro di un blocco di codice in vi su tre spazi con modalità Visual Block:

  1. Seleziona il blocco di codice che desideri rientrare. Fatelo usando Ctrl+Vin modalità normale e freccia in giù per selezionare il testo. Mentre è selezionato, inserisci :per dare un comando al blocco del testo selezionato.

  2. Nella riga di comando verrà visualizzato quanto segue: :'<,'>

  3. Per impostare il rientro su tre spazi, digitare le 3e premere Invio. Questo è ciò che appare::'<,'>le 3

  4. Il testo selezionato viene immediatamente rientrato in tre spazi.

Opzione 2: rientro di un blocco di codice in vi su tre spazi con modalità Visual Line:

  1. Apri il tuo file in vi.
  2. Posiziona il cursore su un po 'di codice
  3. Essere in modalità normale e premere i seguenti tasti:

    Vjjjj:le 3
    

    Interpretazione di ciò che hai fatto:

    V significa iniziare a selezionare il testo.

    jjjj frecce in giù di quattro righe, evidenziando quattro righe.

    : dice a vi inserirete un'istruzione per il testo evidenziato.

    le 3 indica il rientro del testo evidenziato di tre righe.

    Il codice selezionato viene immediatamente aumentato o ridotto a un rientro di tre spazi.

Opzione 3: utilizzare la modalità Visual Block e la modalità di inserimento speciale per aumentare il rientro:

  1. Apri il tuo file in vi.
  2. Posiziona il cursore su un po 'di codice
  3. In modalità normale, premere i seguenti tasti:

    Ctrl+V

    jjjj
    

    (premi la barra spaziatrice cinque volte)

    Esc Shift+i

    Tutto il testo evidenziato è rientrato di altri cinque spazi.


6

Uso la selezione visiva in modalità blocco:

  • Vai nella parte anteriore del blocco per spostarti (in alto o in basso).
  • Premere Ctrl+ Vper accedere alla modalità blocco visivo.
  • Naviga per selezionare una colonna davanti alle linee.
  • Premere I( Shift+ I) per accedere alla modalità di inserimento.
  • Digita alcuni spazi.
  • Press Esc. Tutte le linee si sposteranno.

Questo non è un uni-tasker. Funziona:

  • Nel mezzo delle linee.
  • Per inserire qualsiasi stringa su tutte le righe.
  • Per cambiare una colonna (usare cinvece di I).
  • strappare, cancellare, sostituire, ecc ...

Questo è ingombrante, ma è la strada da percorrere se si esegue la formattazione al di fuori del VIM principale (ad esempio, utilizzando al vim-prettierposto del motore di rientro predefinito). In caso >contrario, l' utilizzo risulterebbe reale nella formattazione eseguita da Prettier.
Oligofren,

Divertente, lo trovo tutt'altro che ingombrante. Questo non è un uni-tasker! L'apprendimento di questo metodo ha molti usi oltre il rientro.
sqqqrly

Lo trovo migliore della risposta accettata, in quanto posso vedere cosa sta succedendo, le linee che sto selezionando e l'azione che sto facendo, e non solo digitare una sorta di incantesimo vim.
user4052054

5
  • Per un blocco di codice, {}: =+%

  • Per una linea selezionata: Shift+ vselezionare utilizzando i tasti freccia su / giù, quindi premere =.

  • Per l'intero file: gg+ =+G

Nota: 'gg' significa andare alla riga 1, '=' è il comando indent e 'G' sposta il cursore alla fine del file .


4

Per indentare tutti i file per quattro:

esc 4G=G

3
...che cosa? "rientro di 4 spazi"? No, questo passa alla riga 4 e quindi rientra tutto da lì alla fine del file, utilizzando la modalità di rientro attualmente selezionata (se presente).
underscore_d

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.