GNU/Linux >> Tutoriales Linux >  >> Linux

Vi y Vim Autocommand:3 pasos para agregar un encabezado personalizado a su archivo automáticamente

Esta es una publicación invitada escrita por Lakshmanan G.

Este artículo es parte de la serie Vi / Vim Tips &Tricks en curso. Con la función de comando automático en Vi / Vim, puede especificar que algunos comandos de Vim se ejecuten automáticamente al leer o escribir un archivo, o al ingresar/salir de un búfer/ventana, o al salir de Vim.

En este artículo, usando 3 pasos simples, revisemos cómo usar esta poderosa función autocmd de Vim para crear una sección de encabezado dentro de un archivo (por ejemplo, encabezado en un código de programación C) con nombre de archivo, fecha de creación , la última fecha/hora de modificación se completa automáticamente cuando abre un archivo en vi.

Sintaxis de Vim autocmd:

autocmd  {event} {pattern} {cmd}


Eventos: Hay más de 40 eventos autocmd. Los siguientes son algunos ejemplos de eventos de 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 mayoría de los desarrolladores quieren algún encabezado predeterminado para sus programas. Tomemos un ejemplo. Al abrir un archivo ".c", necesita un encabezado de archivo que tenga autor, nombre de archivo, etc. Tenga en cuenta que necesito que la siguiente plantilla se cargue automáticamente al abrir un nuevo archivo ".c". Puede lograr esto en tres pasos como se menciona a continuación.

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

* File Name : 1.c

* Purpose :

* Creation Date : 22-12-2008

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

* Created By :  

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

Paso 1:Crear un archivo de plantilla

Guarde la plantilla anterior en un archivo de texto con ":insertar" en la primera línea, seguido de la plantilla y un "."(punto) en la última línea, como se muestra a continuación.

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

* File Name :

* Purpose :

* Creation Date :

* Last Modified :

* Created By :  

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

Paso 2:Agregar comandos autocmd a ~/.vimrc

Agregue las siguientes líneas en el archivo ~/.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"

Paso 3:Cree un nuevo archivo *.c con encabezado automático

Ahora, cuando cree un nuevo archivo *.c usando vim, esto agregará automáticamente el encabezado definido en el Paso 1 y completará el Nombre del archivo y la Fecha de creación automáticamente como se muestra a continuación.

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

* File Name : myfile.c

* Purpose :

* Creation Date : 20-12-2008

* Last Modified :

* Created By :

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


Cuando guarde el archivo myfile.c, se actualizará automáticamente el campo Última modificación como se muestra a continuación.

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

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

Explicación de los comandos autocmd dentro de ~/.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 línea 1 define el archivo de plantilla. Esto indica que para el archivo *.c, se debe usar el archivo de plantilla /home/jsmith/c_header.txt.
  • La línea 2 buscará el patrón "Nombre de archivo:" desde la primera hasta la décima línea. Si lo encuentra, escribirá el nombre del archivo actual en esa línea.
  • La línea 3 actualizará el campo Fecha de creación.
  • La línea 5 actualizará el campo Última modificación con la fecha y hora actuales cuando guarde el archivo.
  • Líneas 4 y 6:al guardar el archivo, el cursor se moverá a "Última modificación:" (debido a la última operación de escritura). Si desea que el cursor vuelva a la posición anterior, debe agregar las líneas 4 y 6 al archivo .vimrc.
  • La línea 4 marcará la posición actual del cursor antes de actualizar.
  • La línea 6 restaurará la posición del cursor a su posición anterior.

Nota final:

  • Verificar si autocmd está habilitado en Vi / Vim – Ejecutar :version desde vi/vim. Si la función de comando automático está habilitada, se mostrará +autocmd.
  • Ayuda de comandos automáticos – Ejecute :help au desde vi / vim, para obtener ayuda rápida sobre las características de vim autocmd.

Lecturas recomendadas

Aprendizaje de los editores Vi y Vim , por Arnold Robbins . Soy un adicto a la línea de comandos. Entonces, naturalmente, soy un gran admirador de los editores Vi y Vim. Hace varios años, cuando escribí mucho código C en Linux, solía llevar conmigo la referencia de bolsillo del editor Vi todo el tiempo. Incluso si ha estado usando Vi y Vim Editors durante varios años y no ha leído este libro, hágase un favor y lea este libro. Se sorprenderá con las capacidades del editor Vim.

 


Este artículo es parte de la serie Vi / Vim Tips and Tricks en curso. Suscríbase a TheGeekStuff y no se pierda ningún consejo y truco futuro para los editores de Vi y Vim.

Este artículo fue escrito por Lakshmanan G. Trabaja en bk Systems (p) Ltd y está interesado en contribuir al código abierto. The Geek Stuff agradece sus consejos y artículos de invitados.


Linux
  1. ¿Cómo agregar su propia extensión de archivo personalizada a PhotoRec para la recuperación de datos?

  2. ¿Agregar un archivo de audio y video Mkv?

  3. ¿Cómo agregar un dominio, crear servidores de nombres personalizados y apuntar sus dominios a VPS?

  4. Editor Vi y Vim:3 pasos para habilitar la opción Tesauro

  5. ¿Cómo agregar automáticamente una cuenta de usuario Y una contraseña con un script Bash?

CryptoGo:una manera fácil de cifrar y proteger con contraseña sus archivos

Cómo agregar y anclar aplicaciones personalizadas en Plasma

Cómo guardar un archivo en Vi / Vim y salir del editor

Editor VIM

Cómo agregar una contraseña para proteger un archivo Vim en Linux

Cinco pasos para crear un archivo Robots.txt para su sitio web