Con la función Vim Macro, puede grabar y reproducir una secuencia de acciones dentro del editor.
Este artículo explica cómo grabar y reproducir dentro del editor Vi y Vim usando dos ejemplos detallados.
Pasos de alto nivel para grabar y reproducir dentro de Vim
- Comience a grabar presionando q, seguido de un carácter en minúsculas para nombrar la macro
- Realice cualquier acción típica de edición dentro del editor Vim, que se grabará
- Detenga la grabación presionando q
- Reproduzca la macro grabada presionando @ seguida del nombre de la macro
- Para repetir macros varias veces, presione :NN @ nombre de macro. NN es un número
Ejemplo 1:Generación de números de secuencia dentro de un archivo usando Vim Macro
1. Inicie un archivo de prueba de secuencia.txt para generar la secuencia.
$ vim sequence-test.txt
2. Vaya al modo de inserción y escriba "1". como se muestra a continuación
Escribe:Esc i seguido de 1.
$ vim sequence-test.txt 1.
3. Inicie la grabación y guárdela en el registro a.
Escriba:Esc q seguido de a
- q indica que se inicie la grabación
- a indica almacenar las grabaciones en el registro a
- Cuando hagas q a, se mostrará "grabando" en la parte inferior de la vi.
4. Copie la primera línea a la segunda línea para tener dos líneas con 1. como se muestra a continuación
Escriba:Esc yy seguido de p
- yy copiará la línea actual
- p pegará la línea que acaba de copiar
$ vim sequence-test.txt 1. 1.

Fig :Vim mostrando un mensaje de grabación en la parte inferior
5. Incrementa el número.
Tipo:Control a
Al colocar el cursor en la segunda línea, presione Ctrl+a, lo que incrementa el número a 2, como se muestra a continuación.
$ vim sequence-test.txt 1. 2.
6. Detener la grabación
Escriba:q
Presione q para detener la grabación. Notarás que el mensaje de grabación en la parte inferior del vim ya no está.
7. Repite la grabación 98 veces.
Tipo:98@a
- Ahora repita este trabajo, escribiendo 98 @ a
- @a repite la macro "a" una vez.
- 98@a repite las macros "a" 98 veces generando el número de secuencia 1 - 100 como se muestra a continuación usando macros.

Fig :Generar Número de Secuencia en Vim usando Macro
Ejemplo 2:repetir Vim Macro con diferentes argumentos
Este ejemplo explica cómo puede ejecutar el mismo comando, con diferentes entradas para él. es decir, enmarcar el mismo comando, con diferentes argumentos.
Antes de ejecutar la macro:change-password.sql
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
Después de Grabar y ejecutar la Macro:change-password.sql
$ vim change-password.sql ALTER USER Annette IDENTIFIED BY 'Annette'; ALTER USER Warren IDENTIFIED BY 'Warren'; ALTER USER Anthony IDENTIFIED BY 'Anthony '; ALTER USER Preston IDENTIFIED BY 'Preston'; ALTER USER Kelly IDENTIFIED BY 'Kelly '; ALTER USER Taylor IDENTIFIED BY 'Taylor'; ALTER USER Stiller IDENTIFIED BY 'Stiller'; ALTER USER Dennis IDENTIFIED BY 'Dennis'; ALTER USER Schwart IDENTIFIED BY 'Schwart';
1. Abra el change-password.sql que solo tiene los nombres.
$ vim change-password.sql Annette Warren Anthony Preston Kelly Taylor Stiller Dennis Schwartz
2. Inicie la grabación y guárdela en el registro a
Tipo:qa
- q indica que se inicie la grabación
- a indica almacenar las grabaciones en el registro a
- Cuando hagas q a, se mostrará la grabación del mensaje en la parte inferior de la vi.
3. Vaya a Modo Insertar y escriba ALTER USER
Escriba:I (i mayúscula) seguido de “ALTER USER”
Coloque el cursor en cualquier lugar de la primera línea y luego presione I. Lo que lo llevará al primer carácter de la línea. Escribe ALTERAR USUARIO
4. Copie la siguiente palabra (es decir, el nombre)
Escriba:Esc w yw
- Presione Esc y luego presione w para ir a la siguiente palabra ( nombre ).
- yw, copia la palabra actual (nombre).
5. Ir al final y escribir IDENTIFICADO POR ‘
Escriba:Esc A seguido de ” IDENTIFICADO POR ‘”
- Presione Esc y A para mover el cursor al final de la línea y luego escriba espacio.
- Tipo IDENTIFICADO POR ‘
6. Pegue el Nombre copiado
Escriba:Esc p
Presione Esc y luego escriba p para pegar el nombre que se copió en el paso 4.
7. Complete la cita al final.
Escriba:Esc A seguido de ';
Presione Esc, y A para ir al final de la línea, y ';
8. Salta a la siguiente línea y detén el registro.
Escriba:Esc j seguido de q
- j para pasar a la siguiente línea.
- q para detener la grabación

Fig :Vim Macro completó la grabación
9. Repite la Macro con los argumentos en la línea correspondiente
Tipo:8 @ a
- Ahora repite este trabajo 8 veces escribiendo 8@a
- @a repite la macro "a" una vez.
- 8@a repite las macros "a" 8 veces completando el resto de la línea automáticamente como se muestra a continuación

Fig :Reproducción de macro Vim completada
Lecturas recomendadas
Vim 101 Hacks, por Ramesh Natarajan . 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 leer todos los consejos y trucos disponibles del editor Vim. Basado en mi experiencia con el editor de Vim, he escrito el libro electrónico Vim 101 Hacks que contiene 101 ejemplos prácticos sobre varias características avanzadas de Vim que lo harán rápido y productivo en el editor de Vim. 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.
Impresionantes artículos del editor de Vim
Los siguientes son algunos tutoriales impresionantes del editor Vi / Vim que puede resultarle útil.
- Acelere el navegador Firefox con la funcionalidad Vim Editor usando el complemento Vimperator
- Tutorial:haga de Vim su IDE de C/C++ con el complemento c.vim
- Convierta Vim Editor en un hermoso navegador de código fuente para cualquier lenguaje de programación
- 12 potentes ejemplos de buscar y reemplazar para Vim Editor