Ich habe ein großes Shell-Skript, das eine Mischung aus Leerzeichen und Tabulatoren verwendet. Ich möchte die gesamte Datei basierend auf der Syntax wie dem Eclipse-Format erneut einrücken. Gibt es ein Programm (verschönern?), Das dies erledigt?
Es fällt mir schwer, die Logik herauszufinden, wenn alles zusammengeklemmt ist, z
if [ "$CANCELLATION" ]
then
while test $num -gt 0
do
if [ "$cjb" -gt 0 ]
Ich habe gelernt, wie man Funktionen in Vim aufruft, aber das hat nicht funktioniert.
Emacs - hat alle Zeilenumbrüche verloren
linux
indentation
jsymolon
quelle
quelle
M->
ist die übliche Bindung fürend-of-buffer
. Weil es böse ist, die Hände von der Tastatur zu nehmen.C-x h
, der ausgeführt wirdmark-whole-buffer
.untabify
da alles nicht mehr ausgewählt wird, und (2) war dies nicht nur im Menü? Es hat es verdient!Wenn Sie in Vi / Vim die richtige Dateisyntax (
:set syntax=sh
) festgelegt haben, können Sie: gg=G(oder 1G=G) drücken , um den Einzug der gesamten Datei zu korrigieren.Hier ist der Befehl zum Formatieren der gesamten Datei:
Hinweis: Erstellen Sie eine Sicherungskopie, bevor Sie den obigen Befehl ausführen.
Um die Formatierung zuerst zu testen, bearbeiten Sie die Datei in Vim und führen Sie Folgendes aus :
:norm gg=G
.Siehe auch: Schlecht eingerückten Code bei Vi SE erneut einrücken
quelle
if
undfi
Schlüsselwörter. Vielleicht ist ein Plugin erforderlich?filetype=sh
(oderft
).Es sieht so aus, als könnte shfmt den Trick für Sie tun. Es formatiert Shell- / Bash-Code, der Einrückungen enthält.
quelle
shfmt -i 2 -ci ~/mariadb-qa/pquery-run.sh
Sie möchten wahrscheinlich Super Shell Indent . Speichern Sie es in ~ / .vim / indent und führen Sie es aus, wenn Sie das nächste Mal in vim sind
:source ~/.vim/indent/sh.vim
Sie möchten wahrscheinlich auch ein dateibasiertes intelligentes Einrücken in Ihrer .vimrc einrichten
Wenn es Ihnen nichts ausmacht, mit Ihrer Formatierung herumzuspielen, fügen Sie diese Zeile auch zu vimrc hinzu.
Wie auch immer, hier ist, worauf Sie gewartet haben. Wenn Sie das nächste Mal ein Shell-Skript in vim bearbeiten, drücken Sie einfach die folgenden Tasten, um Ihr Skript erneut einzubinden, vorausgesetzt, Sie haben Smart Indenting aktiviert und Super Shell Ident installiert.
gg=G
quelle