it-swarm.it

Rientrare diverse righe con VIM?

Ad esempio, sto modificando questo codice:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

ora devo rientrare nella riga di script:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

Come potrei farlo senza spostare il cursore all'inizio di ogni riga e premere Tab?

51
wong2

Premere V per passare alla modalità VISUAL LINE ed evidenziare le linee che si desidera rientrare premendo j. Quindi premere > per indentarli. Quindi il comando completo sarebbe Vjjj>.

In alternativa, posiziona il cursore su <script> tag e usa 4>> per rientrare di quattro righe.

82
dogbane

Per integrare la risposta sopra, dai un'occhiata qui. https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

Esistono più modi per farlo e non posso sperare di competere con la documentazione già fornita lì.

Il mio preferito personale è == per rientrare automaticamente. 5== per rientrare automaticamente 5 righe.

17
user606723

Per rientrare in tutte le righe sotto la riga corrente

=G

Quindi, per indentare l'intero file, vai all'inizio del file (gg) e quindi rientra tutte le righe sotto la riga corrente (=G)

gg=G

Per rientrare nella riga corrente

==

Quindi, per rientrare n righe sotto la riga corrente

n==

Ad esempio, per rientrare 4 righe sotto la riga corrente

4==

Questi sono i comandi più semplici per rientrare più righe.

11
Sagar Jain

Se fossi in me, noterei che ci sono 4 righe da rientrare, posizionarsi sulla riga superiore e quindi digitare >4>. Se ci fossero troppe righe da contare, posizionerei sulla riga superiore e digiterei mk per fare un segno chiamato k, quindi posizionerei sulla riga inferiore (che potrebbe trovarsi a parecchie schermate di distanza) e digitare >'k

9
Michael Dillon

Ecco un approccio piacevole, se stai cercando di rientrare su un gran numero di righe:

:/<script>/,/<\/script>/ >>
4
bhinesley