GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vi und Vim Autocommand:3 Schritte zum automatischen Hinzufügen von benutzerdefinierten Headern zu Ihrer Datei

Dies ist ein Gastbeitrag von Lakshmanan G.

Dieser Artikel ist Teil der fortlaufenden Vi / Vim Tips &Tricks-Reihe. Mit der Autocommand-Funktion in Vi / Vim können Sie einige Vim-Befehle spezifizieren, die automatisch ausgeführt werden, während eine Datei gelesen oder geschrieben wird, oder wenn ein Puffer/Fenster betreten/verlassen oder wenn Vim beendet wird.

Lassen Sie uns in diesem Artikel anhand von 3 einfachen Schritten überprüfen, wie Sie diese leistungsstarke Autocmd-Funktion von Vim verwenden, um einen Header-Abschnitt innerhalb einer Datei (z. B. Header in einem C-Programmcode) mit Dateiname und Erstellungsdatum zu erstellen , Datum/Uhrzeit der letzten Änderung wird automatisch ausgefüllt, wenn Sie eine Datei in vi öffnen.

Vim autocmd-Syntax:

autocmd  {event} {pattern} {cmd}


Veranstaltungen: Es gibt mehr als 40 autocmd-Ereignisse. Im Folgenden finden Sie einige Beispiele für autocmd-Ereignisse.

BufNewFile	- Starting to edit a file that doesn't exist.
FileReadPre	- Before reading a file with a ":read" command.
BufWritePre	- Starting to write the whole buffer to a file.
FileWritePre	- Starting to write part of a buffer to a file.
BufDelete	- Before deleting a buffer from the buffer list.
BufWipeout	- Before completely deleting a buffer.
BufNew	- Just after creating a new buffer.
BufEnter	- After entering a buffer.
BufLeave	- Before leaving to another buffer.
SwapExists	- Detected an existing swap file.


Die meisten Entwickler wollen einen Standard-Header für ihre Programme. Nehmen wir ein Beispiel. Wenn Sie eine „.c“-Datei öffnen, benötigen Sie einen Dateikopf, der Autor, Dateiname usw. enthält. Beachten Sie, dass die folgende Vorlage beim Öffnen einer neuen „.c“-Datei automatisch geladen werden muss. Sie können dies in drei Schritten erreichen, wie unten erwähnt.

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

* Last Modified : Mon 22 Dec 2008 10:36:49 PM PST

* Created By :  

_._._._._._._._._._._._._._._._._._._._._.*/

Schritt 1:Erstellen Sie eine Vorlagendatei

Speichern Sie die obige Vorlage in einer Textdatei mit „:insert“ in der ersten Zeile, gefolgt von der Vorlage und einem „.“(Punkt) in der letzten Zeile, wie unten gezeigt.

$ cat c_header.txt
:insert
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

_._._._._._._._._._._._._._._._._._._._._.*/
.

Schritt 2:Autocmd-Befehle zu ~/.vimrc hinzufügen

Fügen Sie die folgenden Zeilen in der Datei ~/.vimrc hinzu.

$ cat ~/.vimrc
autocmd bufnewfile *.c so /home/jsmith/c_header.txt
autocmd bufnewfile *.c exe "1," . 10 . "g/File Name :.*/s//File Name : " .expand("%")
autocmd bufnewfile *.c exe "1," . 10 . "g/Creation Date :.*/s//Creation Date : " .strftime("%d-%m-%Y")
autocmd Bufwritepre,filewritepre *.c execute "normal ma"
autocmd Bufwritepre,filewritepre *.c exe "1," . 10 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%c")
autocmd bufwritepost,filewritepost *.c execute "normal `a"

Schritt 3:Erstellen Sie eine neue *.c-Datei mit automatischem Header

Wenn Sie jetzt eine neue *.c-Datei mit vim erstellen, fügt dies automatisch den in Schritt 1 definierten Header hinzu und füllt den Dateinamen und das Erstellungsdatum automatisch wie unten gezeigt aus.

$ vi myfile.c
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

_._._._._._._._._._._._._._._._._._._._._.*/


Wenn Sie die Datei myfile.c speichern, wird das Feld „Zuletzt geändert“ automatisch entsprechend aktualisiert, wie unten gezeigt.

$ vi myfile.c
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified : Sat 20 Dec 2008 09:37:30 AM PST

* Created By :

_._._._._._._._._._._._._._._._._._._._._.*/

Erklärung der autocmd-Befehle in ~/.vimrc

$ cat -n ~/.vimrc
     1  autocmd bufnewfile *.c so /home/jsmith/c_header.txt
     2  autocmd bufnewfile *.c exe "1," . 10 . "g/File Name :.*/s//File Name : " .expand("%")
     3  autocmd bufnewfile *.c exe "1," . 10 . "g/Creation Date :.*/s//Creation Date : " .strftime("%d-%m-%Y")
     4  autocmd Bufwritepre,filewritepre *.c execute "normal ma"

     5  autocmd Bufwritepre,filewritepre *.c exe "1," . 10 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%c")
     6  autocmd bufwritepost,filewritepost *.c execute "normal `a"

  • Zeile 1 definiert die Vorlagendatei. Dies zeigt an, dass für die *.c-Datei die Vorlagendatei /home/jsmith/c_header.txt verwendet werden sollte.
  • Zeile 2 sucht nach dem Muster „Dateiname:“ von der 1. bis zur 10. Zeile. Falls gefunden, wird der aktuelle Dateiname in diese Zeile geschrieben.
  • Zeile 3 aktualisiert das Feld Erstellungsdatum.
  • Zeile 5 aktualisiert das Feld "Zuletzt geändert" mit dem aktuellen Datum und der Uhrzeit, wenn Sie die Datei speichern.
  • Zeile 4 &6:Beim Speichern der Datei bewegt sich der Cursor auf „Zuletzt geändert:“ (wegen des letzten Schreibvorgangs). Wenn Sie möchten, dass der Cursor wieder an die vorherige Position zurückkehrt, müssen Sie Zeile 4 und 6 zur .vimrc-Datei hinzufügen.
  • Zeile 4 markiert die aktuelle Cursorposition vor der Aktualisierung.
  • Zeile 6 stellt die Cursorposition auf ihre vorherige Position zurück.

Letzter Hinweis:

  • Überprüfen Sie, ob autocmd in Vi / Vim aktiviert ist – Führen Sie :version von vi / vim aus. Wenn die Autocommand-Funktion aktiviert ist, wird +autocmd.
  • angezeigt
  • Autocommand-Hilfe – Führen Sie :help au von vi / vim aus aus, um schnelle Hilfe zu vim autocmd-Funktionen zu erhalten.

Empfohlene Lektüre

Erlernen der Vi- und Vim-Editoren , von Arnold Robbins . 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, hatte ich die Pocket-Referenz des Vi-Editors immer bei mir. 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.

 


Dieser Artikel ist Teil der laufenden Vi/Vim-Tipps-und-Tricks-Reihe. Bitte abonnieren Sie TheGeekStuff und verpassen Sie keine zukünftigen Vi- und Vim-Editor-Tipps und -Tricks.


Dieser Artikel wurde von Lakshmanan G. geschrieben. Er arbeitet bei bk Systems (p) Ltd und ist daran interessiert, zu Open Source beizutragen. The Geek Stuff freut sich über Ihre Tipps und Gastartikel.


Linux
  1. Wie kann ich eine Domain hinzufügen, benutzerdefinierte Nameserver erstellen und Ihre Domains auf VPS verweisen?

  2. Vi- und Vim-Editor:3 Schritte zum Aktivieren der Thesaurus-Option

  3. So fügen Sie einer Datei in Linux Header- und Trailer-Zeile hinzu

  4. Wie fügt man Benutzerkonto UND Passwort automatisch mit einem Bash-Skript hinzu?

  5. Fügen Sie einer tabulatorgetrennten Datei einen Header hinzu

CryptoGo – Eine einfache Möglichkeit, Ihre Dateien zu verschlüsseln und mit einem Passwort zu schützen

So fügen Sie benutzerdefinierte Anwendungen in Plasma hinzu und heften sie an

So speichern Sie eine Datei in Vi / Vim und beenden den Editor

VIM-Editor

So fügen Sie ein Passwort hinzu, um eine Vim-Datei in Linux zu schützen

Fünf Schritte zum Erstellen einer Robots.txt-Datei für Ihre Website