Dieser Beitrag wurde von SathiyaMoorthy verfasst.
Dieser Artikel ist Teil der laufenden Vi / Vim Tipps und Tricks-Reihe. Als Linux-Systemadministrator oder -Programmierer können Sie beim Codieren von Bash-Shell-Skripts die folgenden sich wiederholenden Aufgaben ausführen:
- Dateiheader hinzufügen
- Funktion/Frame-Kommentar hinzufügen
- Inklusive Standard-Code-Snippet
- Syntaxprüfung durchführen
- Dokumentation über eine Funktion lesen
- Einen Codeblock in einen Kommentar umwandeln und umgekehrt
Das bash-Support Vim-Plugin bietet die einfachste Möglichkeit, all dies zu tun, und spart viel Zeit und Tastenanschläge.
Das Plugin wurde von Fritz Mehner geschrieben, der den Zweck des Plugins erklärt als:„BASH-Skripte mit Menüs und Hotkeys schreiben und ausführen.“
Dieser Artikel erklärt die Installation des Plugins in 3 einfachen Schritten und 8 leistungsstarke Funktionen des Plugins.
3 Schritte zum Installieren des Bash-Support-Plugins
Schritt 1:Laden Sie das Bash-Support-Plugin herunter
Laden Sie das Plugin von der Website vim.org herunter.
$ cd /usr/src $ wget -O bash-support.zip http://www.vim.org/scripts/download_script.php?src_id=9890
Schritt 2:Installieren Sie das bash-unterstützende Vim-Plugin
$ mkdir ~/.vim # if the directory does not exist already $ cd ~/.vim $ unzip /usr/src/bash-support.zip
Schritt 3:Aktivieren Sie das Plugin in ~/.vimrc
Fügen Sie die folgende Zeile zu ~/.vimrc hinzu, um das Plugin für den Vim-Editor zu aktivieren.
$ vim ~/.vimrc filetype plugin on
8 leistungsstarke Funktionen des Bash-Vim-Plugins
Funktion 1:Automatischen Header zu *.sh-Datei hinzufügen
Wenn Sie eine Datei mit der Erweiterung .sh öffnen, wird die Datei mit dem Header wie unten gezeigt geöffnet. Dadurch wird der Cursor im Einfügemodus auch in das Beschreibungsfeld gesetzt.
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: (), # COMPANY: # VERSION: 1.0 # CREATED: 02/14/09 15:42:08 IST # REVISION: --- #============================================================
Um den Standardwert von AUTHOR und COMPANY zu ändern, fügen Sie die folgenden Zeilen in ~/.vimrc
let g:BASH_AuthorName = 'SathiyaMoorthy' let g:BASH_Email = '[email protected]' let g:BASH_Company = 'Open Source Corporation'
Wenn Sie jetzt eine neue Bash-Skriptdatei erstellen, werden die geänderten Werte für AUTHOR und COMPANY wie unten gezeigt angezeigt.
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: SathiyaMoorthy (), [email protected] # COMPANY: Open Source Corporation # VERSION: 1.0 # CREATED: 02/14/09 15:39:58 IST # REVISION: --- #============================================================
Hinweis: Um dem Header benutzerdefinierte Felder hinzuzufügen, ändern Sie die Datei ~/.vim/perl-support/templates/bash-file-header und fügen Sie Ihr eigenes benutzerdefiniertes Feld hinzu.
Funktion 2:Hinzufügen der Bash-Funktion mit \sfu
Um ein Unterprogramm zu schreiben, geben Sie \sfu im normalen Modus ein, was zur Eingabe des Funktionsnamens auffordert (wie in Abb. 1 unten gezeigt) und das Unterprogramm mit dem Standardfunktionsinhalt einfügt (wie in Abb. 2 unten gezeigt).
Abb. 1: Geben Sie \sfu ein, um eine Bash-Funktion in ein Shell-Skript einzufügen
Abb. 2: Bash-Funktion automatisch in Shell-Skript hinzugefügt
Funktion 3:Einfügen einer Funktionskopfzeile mit \cfu
Um einen Funktionsheader einzufügen, geben Sie \cfu im normalen Modus ein, der Kommentare wie in Abb. 3 zeigt.
Abb. 3: Geben Sie \cfu ein, um einen Funktionsheader in ein Shell-Skript einzufügen
Funktion 4:Hinzufügen eines Frame-Kommentars mit \cfr
Um einen Frame-Kommentar hinzuzufügen, geben Sie \cfr im normalen Modus ein, was den folgenden formatierten Kommentar ergibt, wie in Abbildung 4 gezeigt.
Abb. 4: Geben Sie \cfr ein, um einen Frame-Kommentar in ein Shell-Skript einzufügen
Funktion 5:Bash-Anweisungen in Shell-Skript einfügen
Tastenkombinationen zum Einfügen von Anweisungen sind:
- \sc Fall in … esac
- \sl elif dann
- \sf für erledigt
- \sfo for ((…)) do done
- \si wenn dann fi
- \sie if then else fi
- \ss auswählen und fertig
- \st bis fertig
- \sw bis fertig
- \sfu Funktion
- \se echo e „\n“
- \sp printf „\n“
Beispiel:Automatisches Einfügen der Case-Anweisung in ein Shell-Skript
\sc fügt die case-Anweisungen ein und platziert den Cursor neben der case-Anweisung im INSERT-Modus, wie in Abbildung 5 gezeigt. Auf diese Weise können Sie alle erwähnten Tastenkombinationen verwenden, um die entsprechende Anweisung in Tabelle 1 zu erhalten.
Abb. 5: Geben Sie \sc ein, um die Case-Anweisung in das Bash-Shell-Skript einzufügen
Funktion 6:Einfügen eines vordefinierten Code-Snippets in das Bash-Skript mit \nr
Codeschnipsel können mit \nr bzw. \nw gelesen/geschrieben werden. Das Plugin wird mit einigen vordefinierten Codeschnipseln geliefert, die Sie in Ihren Code einfügen können. Im Folgenden sind die standardmäßigen Codeausschnitte aufgeführt, die mit dem Plugin geliefert werden.
$ ls -1 ~/.vim/bash-support/codesnippets/ assert basename+pathname basename-function check-number-of-command-line-arguments create-tempfile create-tempfile-with-trap free-software-comment read-and-split-into-array timestamp usage-and-command-line-arguments.noindent use-file-descriptor-read use-file-descriptor-write well-behaved-script
Um das Code-Snippet-check-number-of-command-line-arguments einzufügen, drücken Sie \nr und Sie werden zur Eingabe eines Dateinamens aufgefordert. Geben Sie den Dateinamen als check-number-of-command-line-arguments an und der folgende Code wird automatisch in das Shell-Skript eingefügt.
#----------------------------------------------------------------------- # Check number of command line arguments #----------------------------------------------------------------------- if [ $# -lt 1 ] then echo -e "\n\tUsage: ${0##/*/} File\n" exit 1 fi
Hinweis: Sie können Ihre eigenen Codeschnipsel definieren und unter ~/.vim/bash-support/codesnippets/ platzieren. Sie können auch Ihre eigenen Codeausschnitte aus dem vorhandenen Code erstellen – wählen Sie den Teil des Codes aus, der als Codeausschnitt erstellt werden soll, drücken Sie \nw und geben Sie ihm einen Dateinamen. Geben Sie beim nächsten Mal \nr und den Dateinamen ein, um Ihr benutzerdefiniertes Code-Snippet zu erhalten.
Funktion 7:Erhalten Sie schnelle Hilfe zu den integrierten Bash-Befehlen
Wenn Sie die Hilfeseite für die Bash-Builts lesen müssen, verwenden Sie \hh, wenn sich der Cursor im Wort befindet.
Im folgenden Beispiel (Abb. 6) wird der integrierte Bash-Befehl „read“ ausgewählt und \hh eingegeben, wodurch die Schnellhilfe für den Befehl „read“ angezeigt wird. Verwenden Sie die gleiche Methode, um schnelle Hilfe zu allen integrierten Bash-Befehlen zu erhalten.
Abb. 6: Geben Sie \hh ein, um Hilfe zum ausgewählten integrierten Bash-Befehl zu erhalten
Funktion 8:Hervorgehobene Kommentare
Die folgenden Befehle fügen die entsprechenden Schlüsselwortkommentare hinzu. Geben Sie beispielsweise \ckb ein, um die BUG-Kommentarzeile innerhalb des Shell-Skripts einzufügen.
- \ckb Schlüsselwort BUG
- \ckt Schlüsselwort TODO
- \ckr Schlüsselwort knifflig
- \ckw Stichwort WARNUNG
Geben Sie \ckt ein, um eine Kommentarzeile mit dem Schlüsselwort „# :TODO:mm/dd/yy::“ hinzuzufügen. Dies ist im Grunde eine Kommentarzeile, die als TODO fungiert, in die Sie die Punkte eingeben können, die Sie später erledigen möchten.
Abb. 7: Geben Sie \ckt ein, um TODO innerhalb des Bash-Shell-Skripts hinzuzufügen
Das Bash-Support-Plugin enthält viele leistungsstarke Funktionen. Lesen Sie die Dokumentation für weitere Informationen. Die Dokumentation befindet sich an folgendem Speicherort auf Ihrem System.
- README :~/.vim/README.bashsupport
- PDF:~/.vim/bash-support/doc/bash-hot-keys.pdf
- Online-Dokumentation für Bash-Unterstützung des vim-Plugins
- Dieses Plugin enthält eine Hilfedatei (bashsupport.txt), die von :h bashsupport angezeigt werden kann
- [Generieren Sie die Hilfe-Tags mit :helptags ~/.vim/doc und geben Sie dann :h bashsupport aus]
- Zusätzliche Screenshots dieses Plug-ins.
Empfohlene Lektüre
Vim 101 Hacks, von Ramesh Natarajan . Ich bin ein Kommandozeilen-Junkie. Also bin ich natürlich ein großer Fan von Vi- und Vim-Editoren. Vor einigen Jahren, als ich viel C-Code unter Linux geschrieben habe, habe ich alle verfügbaren Vim-Editor-Tipps und -Tricks gelesen. Basierend auf meiner Vim-Editor-Erfahrung habe ich das Vim 101 Hacks eBook geschrieben, das 101 praktische Beispiele zu verschiedenen erweiterten Vim-Funktionen enthält, die Sie im Vim-Editor schnell und produktiv machen werden. Auch wenn Sie Vi und Vim Editors seit mehreren Jahren verwenden und dieses Buch noch nicht gelesen haben, tun Sie sich bitte einen Gefallen und lesen Sie dieses Buch. Sie werden von den Möglichkeiten des Vim-Editors begeistert sein.