Mehrere Zeilen mit VIM einrücken?

42

Zum Beispiel bearbeite ich diesen Code:

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

Jetzt muss ich die Skriptzeile einrücken:

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

Wie kann ich das tun, ohne den Cursor an den Anfang jeder Zeile zu bewegen und die Tabulatortaste zu drücken?

wong2
quelle
Im Befehlsmodus:gg=G
Prinz John Wesley

Antworten:

71

Drücken Sie Vauf VISUAL LINE - Modus zu wechseln und markieren Sie die Zeilen , die Sie einrücken möchten durch Drücken j. Drücken Sie dann, >um sie einzurücken. Der komplette Befehl wäre also Vjjj>.

Alternativ können Sie den Cursor auf das <script>Tag setzen und 4>>mit vier Zeilen einrücken.

Dogbane
quelle
1
Auch beim Ändern mehrerer Einzugsebenen. ist extrem nützlich (es bewegt den gleichen 'Block' mit visuellen, Markierungen oder einer [Zählung] wie die obigen 4 >>).
Pif
Wenn Ihre Syntaxdatei auch mit Tags übereinstimmen kann, können Sie den Cursor auf das Wort "script" setzen und v für den visuellen Modus drücken,%, um zum passenden Tag zu wechseln, und> zum Einrücken oder = zum automatischen Einrücken basierend auf der Syntax. Der Befehl total wäre also v%> oder v% =
ben
Dies funktioniert auch mit dem zeichenweisen visuellen Modus (Kleinbuchstaben v), der etwas einfacher zu tippen ist. Also vjjj>
James Scriven
10

Einrücken aller Zeilen unter der aktuellen Zeile

=G

Um die gesamte Datei einzurücken, gehen Sie zum Anfang der Datei ( gg) und rücken dann alle Zeilen unter der aktuellen Zeile ein ( =G).

gg=G

Die aktuelle Zeile einrücken

==

So rücken Sie nZeilen unterhalb der aktuellen Zeile ein

n==

Zum Beispiel, um 4 Zeilen unterhalb der aktuellen Zeile einzurücken

4==

Dies sind die einfachsten Befehle zum Einrücken mehrerer Zeilen.

Sagar Jain
quelle
8

Wenn ich es wäre, würde ich feststellen, dass 4 Zeilen eingerückt werden müssen, in die oberste Zeile positionieren und dann eingeben >4>. Wenn es zu viele Zeilen zum Zählen gäbe, würde ich in die oberste Zeile positionieren und tippen mk, um eine Markierung mit dem Namen k zu erstellen, dann in die unterste Zeile positionieren (die möglicherweise mehrere Raster entfernt ist) und tippen>'k

Michael Dillon
quelle
netter Tipp, um das Rechnen in Zeilen zu sparen, danke!
Flickerfly
3

Hier ist ein guter Ansatz, wenn Sie versuchen, eine große Anzahl von Zeilen einzurücken:

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