Wie wende ich einen Befehl auf alle Zeilen an?


19

Wenn ich alle Zeilen in einem Dokument einrücken möchte, kann ich eingeben >G, um es auf die aktuelle Zeile und darunter >gganzuwenden , gefolgt von und , um es auf die darüber liegenden Zeilen anzuwenden.

Gibt es eine Kombination, mit der ich mich >auf alle Zeilen gleichzeitig anwenden kann ?

Antworten:


19

Sie suchen den :>Befehl und einen Bereich von 1,$( %kurz) für die gesamte Datei.

:%>

Weitere Hilfe finden Sie unter:

:h :>
:h :range

5
Aufgrund des Titels dieser Frage ("Befehl auf alle Zeilen anwenden") ist es meines Erachtens erwähnenswert, dass im Beispiel in der Frage der Normalmodusoperator erwähnt wird >, während in dieser Antwort der Befehlsmodusbefehl verwendet wird :>. Genau genommen ist das nicht dasselbe. Dass sie den gleichen Namen haben, ist ein Zufall. Gehen Sie nicht davon aus, dass Sie Operatoren und Befehle im Allgemeinen austauschen können. Der gUOperator konvertiert beispielsweise Text in Großbuchstaben, :%gUist jedoch kein gültiger Befehl, um diesen auf den gesamten Puffer anzuwenden.
tommcdo

7

Eine Möglichkeit, alle Zeilen in einem Dokument einzurücken:

:%>

3

Ohne den normalen Modus zu verlassen, können Sie einfach Folgendes tun:

gg>G

2
Der Nachteil hier ist, dass Sie Ihre Position in der Datei verlieren
TankorSmash

Alle anderen Antworten teilen diesen Nachteil, und das OP erwähnte "Respektiere die Cursorposition" nicht als Voraussetzung.
Romainl

1
<co> kann verwendet werden, um zu Ihrer vorherigen Position zurückzukehren. Die Lösung von @ romainl erfordert, dass Sie zweimal zurückkehren, während die andere nur einmal zurückkehren muss
Brett Y

Sicher können Sie den Wert des Behaltens Ihres Platzes schätzen, und wie eine Antwort, die diese Position behalten würde, wertvoll sein würde.
TankorSmash

1
Deshalb wird es nicht herabgestuft. Es ist einfach eine Notiz, die besagt, dass es irgendwo eine bessere Option gibt und dass sie weiter suchen sollten. Beispiel: Auf einer Programming SE-Site wird das Problem durch schlampigen Code behoben, aber Sie würden immer noch eine andere Lösung erwarten, die das Problem löst und gut aussieht.
TankorSmash

3

Eine weitere Option, die noch nicht erwähnt wurde:

:g/^/>

Dadurch wird der Befehl >in allen Zeilen ausgeführt, die dem Muster entsprechen ^.

Nachteil ist, dass dadurch Ihr Suchverlauf überschrieben wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.