GNU/Linux >> Tutoriels Linux >  >> Linux

Vi et Vim Autocommand :3 étapes pour ajouter automatiquement un en-tête personnalisé à votre fichier

Ceci est un article invité écrit par Lakshmanan G.

Cet article fait partie de la série Vi / Vim Tips &Tricks en cours. En utilisant la fonctionnalité d'autocommande dans Vi / Vim, vous pouvez spécifier que certaines commandes Vim soient exécutées automatiquement lors de la lecture ou de l'écriture d'un fichier, ou lors de l'entrée/la sortie d'un tampon/d'une fenêtre, ou lors de la sortie de Vim.

Dans cet article, en utilisant 3 étapes simples, voyons comment utiliser cette puissante fonctionnalité autocmd de Vim pour créer une section d'en-tête dans un fichier (par exemple, un en-tête dans un code de programmation C) avec le nom du fichier, la date de création , la date/heure de la dernière modification est automatiquement renseignée lorsque vous ouvrez un fichier dans vi.

Syntaxe Vim autocmd :

autocmd  {event} {pattern} {cmd}


Événements : Il existe plus de 40 événements autocmd. Voici quelques exemples d'événements autocmd.

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.


La plupart des développeurs veulent un en-tête par défaut pour leurs programmes. Prenons un exemple. Lors de l'ouverture d'un fichier ".c", vous avez besoin d'un en-tête de fichier avec l'auteur, le nom du fichier, etc. Considérez que j'ai besoin que le modèle suivant soit chargé automatiquement lors de l'ouverture d'un nouveau fichier ".c". Vous pouvez y parvenir en trois étapes, comme indiqué ci-dessous.

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

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

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

* Created By :  

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

Étape 1 :Créer un fichier modèle

Enregistrez le modèle ci-dessus dans un fichier texte avec ":insert" sur la première ligne, suivi du modèle et d'un "." (point) sur la dernière ligne, comme indiqué ci-dessous.

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

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

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

Étape 2 :Ajoutez des commandes autocmd à ~/.vimrc

Ajoutez les lignes suivantes dans le fichier ~/.vimrc.

$ 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"

Étape 3 :Créer un nouveau fichier *.c avec en-tête automatique

Désormais, lorsque vous créez un nouveau fichier *.c à l'aide de vim, cela ajoutera automatiquement l'en-tête défini à l'étape 1 et remplira automatiquement le nom du fichier et la date de création, comme indiqué ci-dessous.

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

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

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


Lorsque vous enregistrez le fichier monfichier.c, il met automatiquement à jour le champ Dernière modification en conséquence, comme indiqué ci-dessous.

$ 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 :

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

Explication des commandes autocmd dans ~/.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"

  • La ligne 1 définit le fichier modèle. Cela indique que pour le fichier *.c, le fichier modèle /home/jsmith/c_header.txt doit être utilisé.
  • Ligne 2 recherchera le motif "Nom de fichier :" de la 1ère à la 10ème ligne. S'il est trouvé, il écrira le nom de fichier actuel dans cette ligne.
  • La ligne 3 mettra à jour le champ Date de création.
  • Ligne 5 mettra à jour le champ Dernière modification avec la date et l'heure actuelles lorsque vous enregistrez le fichier.
  • Lignes 4 et 6 :lors de l'enregistrement du fichier, le curseur se déplacera vers "Dernière modification :" (en raison de la dernière opération d'écriture). Si vous voulez que le curseur revienne à la position précédente, vous devez ajouter les lignes 4 et 6 au fichier .vimrc.
  • La ligne 4 marquera la position actuelle du curseur avant la mise à jour.
  • La ligne 6 restaurera la position du curseur à sa position précédente.

Remarque finale :

  • Vérifiez si autocmd est activé dans Vi / Vim – Exécuter :version depuis vi / vim. Si la fonction de commande automatique est activée, elle affichera +autocmd.
  • Aide de l'autocommande – Exécutez :help au depuis vi / vim, pour obtenir une aide rapide sur les fonctionnalités de vim autocmd.

Lecture recommandée

Apprentissage des éditeurs Vi et Vim , par Arnold Robbins . Je suis un accro de la ligne de commande. Donc, naturellement, je suis un grand fan des éditeurs Vi et Vim. Il y a plusieurs années, lorsque j'écrivais beaucoup de code C sur Linux, j'avais l'habitude d'avoir toujours sur moi la référence de poche de l'éditeur Vi. Même si vous utilisez les éditeurs Vi et Vim depuis plusieurs années et que vous n'avez pas lu ce livre, rendez-vous service et lisez ce livre. Vous serez étonné des capacités de l'éditeur Vim.

 


Cet article fait partie de la série Vi / Vim Tips and Tricks en cours. Veuillez vous abonner à TheGeekStuff et ne manquez aucun des futurs trucs et astuces des éditeurs Vi et Vim.


Cet article a été écrit par Lakshmanan G. Il travaille chez bk Systems (p) Ltd et souhaite contribuer à l'open source. The Geek Stuff accueille vos conseils et articles invités.


Linux
  1. Ajouter un fichier audio à une vidéo Mkv ?

  2. Comment ajouter un domaine, créer des serveurs de noms personnalisés et faire pointer vos domaines vers VPS ?

  3. Metamorphose 2 - Renommer par lots vos fichiers et dossiers sous Linux

  4. Comment ajouter automatiquement un compte utilisateur ET un mot de passe avec un script Bash ?

  5. Ajouter un en-tête à un fichier délimité par des tabulations

CryptoGo - Un moyen facile de crypter et de protéger vos fichiers par mot de passe

Comment ajouter et épingler des applications personnalisées dans Plasma

Comment enregistrer un fichier dans Vi / Vim et quitter l'éditeur

Éditeur VIM

Comment ajouter un mot de passe pour protéger un fichier Vim sous Linux

Cinq étapes pour créer un fichier Robots.txt pour votre site Web