Was ist der einfachste Weg, um die ersten 2 Leerzeichen für jede Zeile mit VIM zu löschen? Grundsätzlich wird "2x" für jede Zeile wiederholt.
Klarstellung: Hier wird davon ausgegangen, dass die ersten 2 Zeichen Leerzeichen sind. Es geht also darum, mehrere Zeilen zusammen einzurücken.
Antworten:
Einige weitere Optionen. Sie können entscheiden, welcher der "einfachste Weg" ist.
Entfernen Sie die ersten 2 Zeichen jeder Zeile:
Entfernen Sie die ersten 2 Zeichen jeder Zeile nur, wenn es sich um Leerzeichen handelt:
Beachten Sie, dass der letzte Schrägstrich optional ist und nur hier angezeigt wird, damit Sie die beiden Leerzeichen sehen können. Ohne den Schrägstrich sind es nur 7 Zeichen, einschließlich des
:
.Bewegen Sie den Einzug für jede Zeile nach links:
quelle
%
Zeichen einfach bedeutet "Führen Sie diesen Befehl für jede Zeile im Dokument aus, nicht nur für die aktuelle Zeile". Ich denke. Ich kann nicht viel Dokumentation darüber finden.Ctrl-V
(oderCtrl-Q
wenn SieCtrl-V
zum Einfügen verwenden).d
, um den ausgewählten Bereich zu löschen.Esc
quelle
Sie können auch suchen und ersetzen (im Ex-Editor, auf den über das :Zeichen zugegriffen wird ):
Entfernen Sie die ersten beiden Zeichen, egal was passiert:
Entfernen Sie die ersten beiden Leerzeichen (muss am Anfang stehen und beide müssen Leerzeichen sein ... jede Zeile, die diesen Kriterien nicht entspricht, wird übersprungen):
quelle
Angenommen, a
shiftwidth=2
, dann wird Shift mit einem Bereich von verwendet%
quelle
Zwei Leerzeichen oder zwei Zeichen? (
2x
macht das letztere.)löscht zwei Leerzeichen am Anfang jeder Zeile; Verwenden Sie
%
(entspricht1,$
)[range]
dies für die gesamte Datei.löscht die ersten beiden Zeichen jeder Zeile, unabhängig davon, um was es sich handelt. (Beachten Sie, dass zwei Zeichen gelöscht werden , nicht unbedingt zwei Spalten . Ein Tabulatorzeichen zählt als ein Zeichen.)
Wenn Sie den Einzug wirklich ändern, können Sie ihn mit dem
<
Befehl verringern oder mit dem>
Befehl vergrößern. Stellen Sie ein, umshiftwidth
zu steuern, wie weit es sich verschiebt, zquelle
Ich würde einen von zwei Ansätzen ausprobieren:
Ctrl+V
(häufig zugeordnetCtrl+Q
).q1
(oder einer anderen Zahl / einem anderen Buchstaben, den Sie als Aufzeichnungsregister bezeichnen möchten) auf und spielen Sie dieses Makro dann mehrmals mit ab@1
(um mein vorheriges Beispiel zu verwenden. Verwenden Sie noch besser eine vorhergehende Zahl, um anzugeben, wie viele Ausführungszeiten -10@1
zum Beispiel 10-maliges Ausführen dieses Makros. Dies hängt jedoch davon ab, was Sie aufgezeichnet haben. Stellen Sie sicher, dass Sie den Cursor zurückspulen0
oder eine Zeile fallen lassenj
, falls dies relevant ist.quelle
Ich würde auch hinzufügen: Erfahren Sie, wie Sie Einrückungen für vim konfigurieren. Dann reicht ein einfacher
gg=G
.quelle