Estás mirando la versión 3 de mi sitio web, para ver la última versión por favor anda a juque.cl

juque

Juan Pablo Aqueveque: Ingeniero de Sistemas, Diseñador y Desarrollador Web que reside en Temuco, Chile.

Macros en Vim

Publicado por Juan Pablo el 11.Mar.2006 | Comentarios (0)

Demos valor agregado a Vim, usaremos una macro para hacer un trabajo repetitivo. Antes que nada una nota importante:

En Vim para Windows existen algunos juegos de teclas que no funcionan como en Vim para Unix. Por ejemplo, un Control + A en Vim para Unix incrementa en uno (1) el valor númerico bajo el cursor, pero en Vim para Windows éste mismo juego de teclas significa un "seleccionar todo", por lo tanto debemos asociar éste comportamiento a otro juego de teclas. Se lo asignaremos al Control + +, Control más la tecla "más" del teclado numérico, el comando sería :noremap <C-kPlus> <C-A>. Te recomiendo dejar este comando en el _vimrc y así no hacerlo a cada momento que lo necesites. Si no usas Vim para Unix, obvia esta nota y usa el Control + A en lugar del Control + +.

Ok, ahora hagamos nuestra macro.

Problema

Se necesita repetir la siguiente línea 30 veces pero que se incremente además el valor numérico.

<option value="1">1</option>

Solución

Luego de tipear el código antes mencionado hacemos:

<ESC>
qa
yy
p
CTRL++
l
CTRL++
q
28@a

Resultado

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
...
<option value="30">30</option>

Explicación línea por línea

<ESC> : Modo normal
qa :comienza a grabar la macro asignándola a la variable a
yy :copia la línea actual
p : pega la línea copiada
CTRL++ : Incremente el número
l : mueve el cursor una vez a la derecha
CTRL++: Incrementa el siguiente número
q: detiene la grabación de la macro
28@a: repite las instrucción asignada a la variable a 28 veces.

¿Aún escéptico de darle una oportunidad a Vim?, creo que hay una buena cantidad de razones en este weblog para siquiera darle una mirada.

Enlace Permanente, Comentarios (0), Publicada en: Vim