Blog atrasado con gajes del oficio

Modificar Mapa Del Teclado Con Emacs Y Vim

Estos son algunos de los ejemplos que se pueden utilizar a través de los inmensamente populares editores de programación Emacs 1 y Vim 2, para cambiar el mapa del teclado.

Emacs

El altamente configurable y extensible editor de texto Emacs también nos puede ayudar con modificaciones del teclado, o cambiar la localización de las teclas, sin la necesidad de cambiar todo el diseño, y sin la necesidad de tener que utilizar algún teclado en específico.

Primero se crea una función que se le asigna un nombre determinado. En este caso utilizamos el nombre de “backslash”. Posteriormente a esto, se le atribuye el comando insert seguido de kbd y el mapa del registro del teclado que se desea modificar.

En mi caso, encontré conveniente intercambiar las teclas \ por ; y viceversa. Por ejemplo:

(defun backslash ()
  (interactive)
  (insert (kbd "\\")))

(global-set-key (kbd "; " ) 'backslash)

al igual que:

(defun semicolon ()
  (interactive)
  (insert (kbd ";" )))

(global-set-key (kbd "\\" ) 'semicolon)

Como se puede ver en los ejemplos anteriores, después de esto se le asigna global-set-key a la recién nombrada función. Es decir, en el primer caso, la función se le asignó el nombre backslash, y la cual fue directamente entrelazada con el ya mencionado comando global-set-key seguido de la tecla ;.

De esta manera se logra el objetivo deseado. Esto es, que el ingreso de una tecla dada en el mapa del teclado del registro de entrada del sistema operativo, sea interpretado posteriormente, - mediante la nueva asignación que proveyó la función - con el registro del mapa de otra tecla que haya sido predeterminada, dando lugar con ello a que ese ingreso del mapa del teclado, se registre apropiadamente con los resultados de la salida.

En el primer ejemplo, cada vez que la tecla ;sea presionada, la tecla \ tomará precedencia. Y viceversa.

Vim

en el caso de Vim, el editor de texto más utilizado en Unix, y el cual está disponible de fábrica, o en la mayoría de las variaciones de Unix, el modificar el mapa del teclado se obtiene de varias maneras.

Solamente mostraré el comando que lograría esto de la manera más simple y durante el modo de insertar: inoremap, el cual es seguido de la tecla que se desea modificar, con la que tomaría la nueva posición.

Es decir:

 inoremap ; \

lograría lo que en este caso se quisiera. Cada vez que la tecla ; se presione, la \ tomará su lugar.

De la misma manera, cuando se especifica el anterior comando en el fichero de inicialización, conlleva a especificar el mismo comando, es decir inoremap pero en esta ocasión con los símbolos de manera inversa. De otra manera, ambas teclas tendrán asignadas el mismo mapa en el registro del teclado.

Por lo tanto

inoremap \ ; 

sería imprescindible para finalizar la modificación de estas teclas.