Una de las cosas que mas controversia genera entre los usuarios de Vim son los comandos de movimiento. Si bien algunos estamos acostumbrados a escribir cosas como
1 | 20Gfh; |
a otros les parece simplemente abominable, ya que se entiende que para las personas que recién se están iniciando con Vim recordar estos comandos es algo aterrador (e incluso para muchos ya iniciados). Si bien estas combinaciones espantan a muchas personas, una vez que se sabe que hace cada cosa solamente es cuestión de combinarlas para moverse y armar comandos fácilmente.
Vim (como siempre) trae en su arsenal de plugins uno muy particular llamado EasyMotion el cual nos permite navegar realmente rápido dentro del texto que estemos editando con solo pulsar algunas teclas y sin tener que recordar demasiados comandos (cosa que igualmente aconsejo)
Para ello el plugin asigna una letra en particular a cada palabra y basta con ir pulsando esa tecla para ir rápidamente a esa palabra sin mayores complicaciones como vemos en la imagen.
Instalar este plugin es realmente sencillo si utilizamos vundle (si no sabes como utilizar vundle mira este post).
Al instalarlo por defecto, EasyMotion usa la tecla por defecto de Vim ( la barra invertida \ ), para cambiar esto debemos editar nuestro fichero de configuración de Vim llamado ~/.vimrc
y agregar la siguiente linea:
1 | let g:EasyMotion_leader_key = ',,' "podemos cambiar ,, por la combinación que deseemos :) |
Una vez guardado los cambios simplemente reiniciamos Vim y listo.
EasyMotion nos ofrece las siguientes opciones para navegar por el texto. (remplazar ,, por la tecla que hayamos configurado en el .vimrc), solamente voy a poner las que me parecen mas útiles, pero podes mirar aca para obtener el listado completo.
1 | ,,f {letra} se mueve hacia la letra seleccionada hacia la derecha. |
1 | ,,F{letra} se mueve hacia la letra seleccionada hacia la izquierda. |
1 | ,,t{letra} se mueve un carácter antes de la letra seleccionada. |
1 | ,,T{letra} se mueve un carácter mas de la letra que seleccionamos. |
1 | ,,w{letra} se mueve al comienzo de la palabra. |
1 | ,,e{letra} se mueve al final de la palabra |
1 | ,,j{letra} baja hasta la linea seleccionada. |
1 | ,,k{letra} sube hasta la linea seleccionada. |
Como podemos ver, usar EasyMotion nos facilita enormemente la tarea a la hora de navegar por nuestro texto. Pero usarlo solamente para eso seria tristemente un desperdicio…
EasyMotion es un plugin de movimiento con lo cual podemos usarlo con ordenes que esperan comandos de movimiento, por ejemplo podemos copiar texto si presionamos y,,w y seleccionamos la palabra deseada, o también borrar texto si presionamos d,,e y seleccionamos la palabra deseada o incluso seleccionar lo que deseamos simplemente presionando v,,e{letra}, las posibilidades como vemos son simplemente impresionantes!
EasyMotion es uno de los primeros plugins que suelo instalar cada vez que instalo Vim en alguna maquina, ya que hace que tareas comunes como seleccionar una linea o copiar un fragmento sea algo realmente sencillo, recomendado al 100%. 🙂