Ich versuche Vim immer mehr zu benutzen, wenn ich kann. Einer meiner größten Vorteile zwischen Vim und einer IDE wie Aptana ist das automatische Einrücken.
Gibt es eine Möglichkeit, Code automatisch zu formatieren (HTML, CSS, PHP), damit er richtig eingerückt wird?
Wenn ja, wie installierst du das in vim? Ich verstehe Plugins nicht sehr gut. Ich habe versucht, diesen Thread zu überprüfen, und es hat mich mehr verwirrt: Wie ändere ich das Verhalten von vim beim automatischen Einrücken?
Antworten:
So rücken Sie die gesamte Datei automatisch ein:
Erklärt:
gg
- zum Anfang der Datei gehenG
- gehe zum Ende der Datei=
- Einzugquelle
gg=G
aus der Shell ausführen , ohne die Datei zu öffnen?Ich weiß nicht, wie vorhandener Code automatisch formatiert wird, aber wenn Sie Code schreiben und einen automatischen Einzug benötigen:
:set autoindent
(oder:set ai
) aktiviert die automatische Einrückung:set tabwidth=4
(oder:set tw=4
) legt fest, wie viele Leerzeichen ein Tabulator Code einrücken soll>>
Befehl rückt die aktuelle Zeile ein. Wenn Sie ihm eine Zahl voranstellen,4>>
werden 4 Zeilen eingerückt, beginnend mit der aktuellen Zeile.<<
Befehl eine Zeile rückgängig machenIch hoffe, das gibt Ihnen einen guten Start.
quelle
={motion}
normalen Modus - z. B.=G
wird der gesamte Code von der aktuellen Zeile bis zum Ende der Datei eingerückt.==
rückt die aktuelle Zeile ein.:filetype indent on
Automatischer Einzug
*.sh
Fügen Sie einfach die folgenden Zeilen hinzu
~/.vimrc
quelle
~./vimrc
gilt nur für vim editor.Dieses Plugin erleichtert die Formatierung Ihres Codes. Es integriert externe Formatierer und greift auf die Einrückungsfunktionen von vim zurück.
https://github.com/Chiel92/vim-autoformat
Beachten Sie auch den Unterschied zwischen Formatieren und Einrücken. Durch Einziehen wird nur das Leerzeichen vor jeder Zeile korrigiert, während durch das Formatieren auch alles andere behandelt wird, z. B. Leerzeichen um Operatoren usw.
quelle
Erstellen / bearbeiten Sie die
~/.vimrc
Datei und fügen Sie die folgende Zeile hinzu:quelle
:set autoindent
die den automatischen Einzug nur für die aktuelle Datei aktiviert . Durch Hinzufügen in die.vimrc
Datei wird der automatische Einzug dauerhaft aktiviert.In Bash mache ich das:
Dies beseitigt Kommentare und ruft das Skript "bash way" erneut auf. es wird nicht funktionieren, wenn das Skript HEREDOCS enthält, aber wenn Sie dies tun:
Es funktioniert mit jedem Skript, aber das gesamte Skript wird um 4 Leerzeichen eingerückt. Fühlen Sie sich frei zu ändern, aber meinen Namen in Ihrem Skript zu zitieren und es zu posten! : D
quelle
sed
wenn Sie dies wünschen:cat script_to_be_reindented.sh | sed 's#^# #g'
(vims autoformat / indent funktioniert ganz gut. Setzen Sie zuerst diese Zeile in Ihre
~/.vimrc
:Öffnen Sie dann eine Datei in vim und tippen Sie
gg=G
(
gg
Bewegt den Cursor in die erste Zeile.=
Führt den Einrückungsbefehl aus.G
Weist den Einrückungsbefehl an, von hier bis zur letzten Zeile auszuführen.)Wenn das Autoformat wirklich schlecht aussieht, weil jede Zeile eingerückt bleibt, führen Sie es aus
:scriptnames
und überprüfen Sie, ob.../indent/html.vim
(oder welche Sprache Sie auch immer verwenden) in der Liste enthalten ist. Wenn nicht, stellen Sie sicher, dass Ihre~/.vimrc
korrekt ist. Wenn Sie:filetype plugin indent on
über die vim-Befehlszeile ausgeführt haben, müssen Sie die Datei erneut öffnen:e
quelle