Cambiar el mapeado de la tecla Escape en Vim

Veamos cómo cambiar el mapeado de la tecla Escape a otra combinación de teclas más cómodas en el editor Vim

Interfaz edit Vim

Interfaz edit Vim

El editor Vim es un editor “modal”. Esto quiere decir, que dependiendo el modo en el que nos encontremos podremos hacer unas cosas u otras pulsando las teclas.

  • Tenemos el modo de Insertar, en el que al pulsar las teclas de nuestro teclado, escribiremos normalmente un texto.
  • Tenemos el modo normal, en el que con diferentes combinaciones de teclas podremos saltar al inicio de la línea, al final del documento, saltar entre palabras, buscar una cadena, sustituir, etc.
  • Y tenemos el modo Visual, en el que podremos seleccionar bloques de texto para copiar, eliminar, pegar, etc.

Para entrar en modo de insertar, pulsamos la tecla “i” y podremos empezar a escribir nuestro texto. Para salir de este modo debemos pulsar sobre la tecla Escape.

Pero si Vim, está pensado para no tener que mover las manos del teclado, la tecla Escape, vemos que está en muy separada de la zona donde normalmente tecleamos. Lo que puede ser un poco incómodo.

Por eso muchas de las personas que usan Vim, remapean esa tecla, para poder salir del modo Insertar, de una manera más cómoda. Hay varias opciones, aquí te muestro la que he escogido yo.

Este artículo viene a formar parte de la pequeña serie de artículo y tutoriales que he dedicado al editor Vim desde que hago más uso de el para las tareas de edición de texto:

Hasta ahora hemos aprendido cosas como:

Opciones hay muchas, entre ellas, te muestro la que he escogido yo por si te puede ser útil y también te muestro las demás opciones, para que escojas la que quieras.

Muchas personas mapean la tecla Escape en la tecla de Bloqueo de Mayúsculas, ya que argumentan, que no es una tecla que se utilice habitualmente y está bien centrada en el teclado, por lo que es cómo usarla.

Otras personas deciden utilizar una combinación de teclas poco frecuente para usarlo como alternativa a Escape. Yo me he decantado por esta última opción. De las combinaciones de teclas que se pueden usar, me he decantado por la combinación de teclas “jj”.

En español, no hay ninguna palabra que use dos letras “j” seguidas, por lo que no es probable que la escribas sin darte cuenta y te cause un leve trastorno.

Para ello, he añadido en el archivo .vimrc de configuración la siguiente línea:

imap jj <Esc>

Con esto al pulsar una vez la j (por ejemplo mientras escribo en el modo Insertar) Vim, se queda un espacio de tiempo imperceptible esperando qué pasará después.

Si pulso otra vez la tecla “j” entonces lo asumirá como si hubiera pulsado la tecla Escape. Si después de la primera “j” pulso otra tecla, continuaré en el modo de Insertar normalmente.

Hay incluso un complemento para Vim para hacer que no tenga ese imperceptible lapso de tiempo entre las dos pulsaciones de teclas.

Hay quien prefiere la combinación de teclas, “jk” o “kj”, eso ya son cuestiones de gusto. Por cierto, yo sigo manteniendo la funcionalidad de la tecla Escape, aunque se puede eliminar mediante esta otra línea en .vimrc

inoremap <Esc> <Nop>

Ya que cuando pulso un comando (por ejemplo “d”) y quiero cancelarlo, sigo pulsando la tecla Escape, ya que jj no me funciona como sustituto.

Espero que os resulte interesante. Si utilizáis este u otra combinación de teclas u opción, podéis compartirla en los comentarios para que sirva como complemento al artículo.

Enlaces de interés

2 pensamientos en “Cambiar el mapeado de la tecla Escape en Vim

  1. También se puede considerar el uso de la tecla . Por defecto es “contrabarra” pero yo la tengo asignada a y le asocio un par de funciones interesantes:

    let mapleader = ' '
    " strip trailing spaces in the current file
    nnoremap <leader>t :%s/\s\+$//<cr>:let @/=''<CR>
    
    " re-select pasted text
    nnoremap <leader>v V`]
    
    " set paste toggle
    set pastetoggle=<leader>z
    
    " quick save
    nnoremap <leader>s :w<cr>
    

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.