GNU/Linux >> Linux Esercitazione >  >> Linux

Vi e Vim Autocommand:3 passaggi per aggiungere automaticamente un'intestazione personalizzata al tuo file

Questo è un guest post scritto da Lakshmanan G.

Questo articolo fa parte della serie in corso di Vi / Vim Tips &Tricks. Usando la funzione di autocommand in Vi / Vim, puoi specificare alcuni comandi Vim da eseguire automaticamente durante la lettura o la scrittura di un file, o durante l'ingresso/uscita da un buffer/finestra, o mentre esci da Vim.

In questo articolo, utilizzando 3 semplici passaggi, esaminiamo come utilizzare questa potente funzionalità autocmd di Vim per creare una sezione di intestazione all'interno di un file (ad esempio, intestazione in un codice di programmazione C) con nome file, data di creazione , data/ora dell'ultima modifica compilata automaticamente quando apri un file in vi.

Sintassi Vim autocmd:

autocmd  {event} {pattern} {cmd}


Eventi: Ci sono più di 40 eventi autocmd. Di seguito sono riportati alcuni esempi di eventi di 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 maggior parte degli sviluppatori desidera un'intestazione predefinita per i propri programmi. Facciamo un esempio. Quando si apre un file ".c", è necessaria un'intestazione di file con autore, nome file ecc. Considera che ho bisogno del seguente modello da caricare automaticamente durante l'apertura di un nuovo file ".c". Puoi raggiungere questo obiettivo in tre passaggi come indicato di seguito.

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

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

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

* Created By :  

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

Fase 1:crea un file modello

Salva il modello sopra in un file di testo con ":insert" nella prima riga, seguito dal modello e un "."(punto) nell'ultima riga come mostrato di seguito.

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

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

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

Fase 2:aggiungi i comandi autocmd a ~/.vimrc

Aggiungi le seguenti righe nel file ~/.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"

Fase 3:crea un nuovo file *.c con intestazione automatica

Ora, quando crei un nuovo file *.c usando vim, questo aggiungerà automaticamente l'intestazione definita nel passaggio 1 e popolerà automaticamente il nome del file e la data di creazione come mostrato di seguito.

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

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

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


Quando salvi il file myfile.c, aggiornerà automaticamente il campo Ultima modifica di conseguenza, come mostrato di seguito.

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

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

Spiegazione dei comandi autocmd all'interno di ~/.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 riga 1 definisce il file modello. Ciò indica che per il file *.c è necessario utilizzare il file modello /home/jsmith/c_header.txt.
  • La riga 2 cercherà il modello "File Name :" dalla prima alla decima riga. Se trovato, scriverà il nome del file corrente in quella riga.
  • La riga 3 aggiornerà il campo Data di creazione.
  • La riga 5 aggiornerà il campo Ultima modifica con la data e l'ora correnti quando salvi il file.
  • Riga 4 e 6:Durante il salvataggio del file, il cursore si sposterà su “Ultima modifica:” (a causa dell'ultima operazione di scrittura). Se vuoi riportare il cursore nella posizione precedente, devi aggiungere le righe 4 e 6 al file .vimrc.
  • La riga 4 segnerà la posizione corrente del cursore prima dell'aggiornamento.
  • La riga 6 ripristinerà la posizione del cursore alla sua posizione precedente.

Nota finale:

  • Verifica se autocmd è abilitato in Vi / Vim – Esegui :versione da vi / vim. Se la funzione di comando automatico è abilitata, visualizzerà +autocmd.
  • Aiuto per il comando automatico – Esegui :help au da vi / vim, per ottenere un aiuto rapido sulle funzionalità di vim autocmd.

Lettura consigliata

Imparare gli editor Vi e Vim , di Arnold Robbins . Sono un drogato da riga di comando. Quindi, naturalmente sono un grande fan degli editor di Vi e Vim. Diversi anni fa, quando scrivevo molto codice C su Linux, portavo sempre con me il riferimento tascabile dell'editor Vi. Anche se usi Vi e Vim Editor da diversi anni e non hai letto questo libro, per favore fatti un favore e leggi questo libro. Rimarrai stupito dalle capacità dell'editor Vim.

 


Questo articolo fa parte della serie in corso di Vi / Vim Tips and Tricks. Per favore iscriviti a TheGeekStuff e non perdere nessun futuro suggerimento e trucco per editor di Vi e Vim.


Questo articolo è stato scritto da Lakshmanan G. Sta lavorando in bk Systems (p) Ltd ed è interessato a contribuire all'open source. The Geek Stuff accoglie con favore i tuoi suggerimenti e gli articoli degli ospiti.


Linux
  1. Aggiungere un file audio e video Mkv?

  2. Come aggiungere domini, creare nameserver personalizzati e indirizzare i tuoi domini a VPS?

  3. Metamorphose 2 – Rinomina in batch i tuoi file e cartelle su Linux

  4. Vi e Vim Editor:3 passaggi per abilitare l'opzione Thesaurus

  5. Come aggiungere automaticamente account utente E password con uno script Bash?

CryptoGo:un modo semplice per crittografare e proteggere con password i tuoi file

Come aggiungere e bloccare applicazioni personalizzate in Plasma

Come salvare un file in Vi / Vim e uscire dall'editor

Editor VIM

Come aggiungere una password per proteggere un file Vim in Linux

Cinque passaggi per creare un file Robots.txt per il tuo sito web