GNU/Linux >> Znalost Linux >  >> Linux

Vi a Vim Autocommand:3 kroky k automatickému přidání vlastního záhlaví do vašeho souboru

Toto je příspěvek hosta, který napsal Lakshmanan G.
01
Tento článek je součástí probíhající série Vi / Vim Tips &Tricks. Pomocí funkce autocommand ve Vi / Vim můžete určit některé příkazy Vim, které se mají provádět automaticky při čtení nebo zápisu souboru, nebo při vstupu/opuštění vyrovnávací paměti/okna nebo při ukončení Vim.
19
V tomto článku se pomocí 3 jednoduchých kroků podíváme na to, jak používat tuto výkonnou funkci autocmd Vimu k vytvoření sekce záhlaví uvnitř souboru (například záhlaví v programovacím kódu C) s názvem souboru, datem vytvoření , datum/čas poslední úpravy se automaticky vyplní při otevření souboru ve vi.

Syntaxe Vim autocmd:

autocmd  {event} {pattern} {cmd}

26
Události: Existuje více než 40 událostí autocmd. Následuje několik ukázkových událostí 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.

31
Většina vývojářů chce pro své programy nějakou výchozí hlavičku. Vezměme si příklad. Při otevírání souboru „.c“ potřebujete hlavičku souboru, která má autora, název souboru atd.. Zvažte, že potřebuji, aby se při otevírání nového souboru „.c“ automaticky načetla následující šablona. Můžete toho dosáhnout ve třech krocích, jak je uvedeno níže.

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

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

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

* Created By :  

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

Krok 1:Vytvořte soubor šablony

Uložte výše uvedenou šablonu do textového souboru s „:insert“ na prvním řádku, následovaným šablonou a „.“(tečkou) na posledním řádku, jak je znázorněno níže.

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

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

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

Krok 2:Přidejte příkazy autocmd do ~/.vimrc

Přidejte následující řádky do souboru ~/.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"

Krok 3:Vytvořte nový soubor *.c s automatickou hlavičkou

Když nyní vytvoříte nový soubor *.c pomocí vim, automaticky se přidá záhlaví definované v kroku 1 a automaticky se vyplní název souboru a datum vytvoření, jak je uvedeno níže.

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

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

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

46
Když uložíte soubor myfile.c, automaticky se aktualizuje pole Poslední změna, jak je uvedeno níže.

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

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

Vysvětlení příkazů autocmd uvnitř ~/.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"

58

  • Řádek 1 definuje soubor šablony. To znamená, že pro soubor *.c by měl být použit soubor šablony /home/jsmith/c_header.txt.
  • Řádek 2 vyhledá vzor „Název souboru:“ od 1. řádku do 10. řádku. Pokud je nalezen, zapíše do tohoto řádku aktuální název souboru.
  • Řádek 3 aktualizuje pole Datum vytvoření.
  • Řádek 5 aktualizuje pole Poslední úprava aktuálním datem a časem při ukládání souboru.
  • Řádek 4 a 6:Při ukládání souboru se kurzor přesune na „Poslední úprava:“ (kvůli poslední operaci zápisu). Pokud chcete, aby se kurzor vrátil na předchozí pozici, musíte do souboru .vimrc přidat řádek 4 a 6.
  • Řádek 4 označí aktuální pozici kurzoru před aktualizací.
  • Řádek 6 vrátí pozici kurzoru zpět na předchozí pozici.

Poznámka na závěr:

  • Ověřte, zda je ve Vi / Vim povolena funkce autocmd – Spustit :verzi z vi / vim. Pokud je povolena funkce automatického příkazu, zobrazí se +autocmd.
  • Nápověda k automatickému příkazu – Spusťte :help au z vi / vim, abyste získali rychlou nápovědu k funkcím vim autocmd.

61

Doporučená četba

Naučení se editorů Vi a Vim , od Arnolda Robbinse . Jsem feťák z příkazového řádku. Takže jsem přirozeně velkým fanouškem editorů Vi a Vim. Před několika lety, když jsem psal hodně kódu C na Linuxu, jsem vždy nosil kapesní odkaz na editor Vi s sebou. I když používáte editory Vi a Vim několik let a nečetli jste tuto knihu, udělejte si laskavost a přečtěte si tuto knihu. Budete ohromeni možnostmi editoru Vim.

77


Tento článek je součástí probíhající série Vi / Vim Tipy a triky. Přihlaste se k odběru TheGeekStuff a nenechte si ujít žádné budoucí tipy a triky editorů Vi a Vim.

81
Tento článek napsal Lakshmanan G. Pracuje ve společnosti bk Systems (p) Ltd a má zájem přispívat do open source. The Geek Stuff vítá vaše tipy a články hostů.


Linux
  1. Přidat zvukový soubor a video Mkv?

  2. Metamorphose 2 – Dávkové přejmenování souborů a složek v systému Linux

  3. Editor Vi a Vim:3 kroky k aktivaci možnosti Thesaurus

  1. Jak přidat vlastní příponu souboru do PhotoRec pro obnovu dat?

  2. Linux ELF Object File Format (a struktura záhlaví ELF) Základy

  3. Přidejte záhlaví do souboru odděleného tabulátory

  1. Jak přidat doménu, vytvořit vlastní jmenné servery a nasměrovat své domény na VPS?

  2. Jak přidat záhlaví a řádek upoutávky do souboru v Linuxu

  3. Jak automaticky přidat uživatelský účet A heslo pomocí skriptu Bash?