next up previous contents
Siguiente: Apéndices Subir: Personalización de Vim Anterior: Variables de fichero   Índice General

Macros de teclado

El comando para asignar a una tecla concreta una secuencia de comandos, es 0 0«:map0 0». En un fichero de configuración hay que usarlo sin los dos puntos iniciales.

Por ejemplo: el siguiente comando hace que al pulsar la tecla F5 la palabra sobre la que se encuentre el cursor sea rodeada de llaves:

0 0«:map <F5> gewi{<Esc>ea}<Esc>0 0»

Analicémosla con detenimiento:

  1. El primer elemento es el comando 0 0«:map0 0» propiamente dicho.

  2. A continuación viene la tecla a la que se asignará la macro. Al tratarse de una tecla de función se escribe entre los signos ``<'' y ``>'', si fuera una tecla normal bastaría con escribirla, en el caso de que a dicha tecla se le hubiera asignado ya un comando, este sería sobreescrito por el nuevo comando.

  3. Luego vienen las pulsaciones que habría que hacer en Vim, desde el modo normal, para conseguir el efecto pretendido:

En el ejemplo anterior la macro se ha asignado a una sola tecla. Podemos asignarla a más de una tecla, siendo muy normal el asignar comandos a la tecla \ seguida de algún carácter, en cuyo caso cuando queramos ejecutar el comando deberemos teclear ambas teclas con cierta rapidez para que Vim interprete que van juntas.

El comando 0 0«:map0 0» no seguido de ningún argumento lista las asociaciones de teclado establecidas por este procedimiento.

El comando ``:map'' se parece mucho a la grabación de comandos mediante el comando ``q'', aunque hay varias diferencias entre ellos. La más importante es que mientras el primero sobreescribe los comandos estándar de Vim, el segundo no lo hace, ya que un comando grabado con ``q'' nunca se asocia directamente a una tecla, sino a un registro que es llamado mediante el comando ``@''. Con esto quiero decir que mientras 0 0«:map Q gqap0 0» asocia directamente el comando ``gqap'' a la tecla ``Q'', de tal modo que el comando anteriormente asociado a dicha tecla se pierde, la secuencia 0 0«qQgqapq0 0» asocia la ejecución de ``gqap'' al comando ``@Q'', no a ``Q'' propiamente dicho.


next up previous contents
Siguiente: Apéndices Subir: Personalización de Vim Anterior: Variables de fichero   Índice General
Cancerbero 2005-02-12