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.

3voto

Pierz Punkte 5458

Für komplexe C++-Dateien bekommt vim die Formatierung nicht immer richtig hin, wenn man vim's = Filter-Befehl. Daher ist es in solchen Situationen besser, einen externen C++-Formatierer zu verwenden wie astyle (oder entkrusten ) z.B.:

:%!astyle

Vims '='-Funktion benutzt standardmäßig seinen internen Formatierer (der nicht immer alles richtig macht), aber man kann ihn auch so einstellen, dass er einen externen Formatierer benutzt, wie astyle, indem man ihn entsprechend einrichtet, wie es in diese Frage .

3voto

Wojtek Kruszewski Punkte 12442

vim-autoformat Formatieren Sie Ihre Quelldateien mit externen Programmen, die für Ihre Sprache spezifisch sind, z. B. das "rbeautify"-Gem für Ruby-Dateien, das "js-beautify"-Npm-Paket für JavaScript.

3voto

Sie können ein Mapping erstellen, das dies für Sie erledigt.

Damit wird die gesamte Datei automatisch eingerückt und der Cursor bleibt an der aktuellen Position:

nmap <leader>ai mzgg=G`z

3voto

Ramanand Yadav Punkte 165

Gehen Sie einfach in den visuellen Modus in vim , und wählen Sie von oben nach unten Zeilen nach der Auswahl drücken Sie einfach = , Alle die ausgewählte Zeile wird eingerückt werden.

2voto

alphayax Punkte 2585

Für XML-Dateien verwende ich diesen Befehl

:1,$!xmllint --format --recover - 2>/dev/null

Sie müssen xmllint installiert haben (Paket libxml2-utils)

(Quelle: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )

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