720 Stimmen

Wie kann ich die Einrückung einer ganzen Datei in Vi korrigieren?

Wie lautet der Befehl in Vim, um die Einrückung aller Zeilen zu korrigieren?

Oft kopiere ich den Code und füge ihn in ein Remote-Terminal ein und bringe das Ganze durcheinander. Ich möchte dies auf einen Schlag beheben.

0 Stimmen

13 Stimmen

Vorbeugen ist besser als heilen. In diesem Sinne kommt dieser Kommentar. Führen Sie ein ":set paste" aus, bevor Sie in den Einfügemodus wechseln und Code von einem entfernten Terminal einfügen.

1398voto

Logan Capaldo Punkte 38523

= kann der Einrückungsbefehl Bewegungen ausführen. So, gg um den Anfang der Datei zu erhalten, = zum Einrücken, G an das Ende der Datei, gg=G .

143voto

derobert Punkte 47691

Versuchen Sie vor dem Einfügen in das Terminal :set paste y luego :set nopaste wenn Sie fertig sind. Dadurch werden die automatische Einrückung, der Zeilenumbruch und andere Funktionen, die das Einfügen erschweren, deaktiviert.

edit: Ich sollte auch darauf hinweisen, dass ein viel besseres Ergebnis als = Die Einrückung kann in der Regel mit einem externen Programm vorgenommen werden. Ich führe zum Beispiel :%!perltidy Die ganze Zeit über. astyle , cindent usw. können ebenfalls verwendet werden. Und natürlich können Sie diese einem Tastenanschlag zuordnen und je nach Dateityp verschiedene einem Tastenanschlag zuordnen.

61voto

Sagar Jain Punkte 6801

Der Meister aller Befehle ist

gg=G

Dadurch wird die gesamte Datei eingerückt!

Und unten sind einige der einfachen und eleganten Befehle, die verwendet werden, um Zeilen schnell in Vim oder gVim einzurücken.

So rücken Sie alle Zeilen unterhalb der aktuellen Zeile ein

=G

So rücken Sie die aktuelle Zeile ein

==

Zum Einrücken n Zeilen unterhalb der aktuellen Zeile

n==

Um zum Beispiel 4 Zeilen unter der aktuellen Zeile einzurücken

4==

Um einen Codeblock einzurücken, gehen Sie zu einer der geschweiften Klammern und verwenden den Befehl

=%

32voto

Andrew Wagner Punkte 19909

Wenn Sie den Block, in dem Sie sich befinden, neu einordnen möchten, ohne Akkorde eingeben zu müssen, können Sie das tun:

[[=]]

19voto

tokhi Punkte 19702

Drücken Sie die Escape-Taste und tippen Sie dann schnell die folgenden Kombinationen ein:

gg=G

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X