Nada de ratones
El diseño original de vi no tiene en mente el uso del ratón como medio de entrada, por lo que ninguna de las tareas de edición lo requieren, esto incluye la manera en que nos movemos a través del buffer que estamos trabajando. Dicho esto, en lugar de girar la rueda central del ratón y dar un clic por aquí y otro por allá, o incluso sin utilizar las teclas del cursor ubicadas en el teclado, siempre que estemos dentro de Vim tendremos a nuestra disposición el uso de ciertas combinaciones de teclas para movernos a través de nuestros archivos más rápidamente.
Los comandos listados a continuación te ayudarán a ver diferentes zonas dentro del documento que estés trabajando:
^e
Desliza la ventana una línea hacia abajo.^y
Desliza la ventana una línea hacia arriba.^f
Desliza la ventana una página hacia abajo.^b
Desliza la ventana una página hacia arriba.^d
Desliza la ventana media página hacia abajo.^u
Desliza la ventana media página hacia arriba.
Para mover el cursor sin deslizar la ventana tenemos comandos como los siguientes:
H
Coloca el cursor en la parte superior de la ventana.M
Coloca el cursor en la parte media de la ventana.L
Coloca el cursor en la parte inferior de la ventana.gg
Coloca el cursor al inicio de la primera línea.G
Coloca el cursor al inicio de la última línea.
Marcas en el buffer
En Vim puedes marcar cierta posición en el buffer con el fin de volver a esa posición después sin importar en qué otra línea te encuentres. Esto es útil, principalmente si estás explorando código fuente y estás editando funciones relacionadas pero que no necesariamente están cerca.
La forma de dejar una marca es, en modo --NORMAL--
pulsar la tecla m
seguido de alguna otra tecla alfabética (de la A a la Z), por ejemplo: ma
. Esto crea la marca en el registro a
del editor, si después quieres regresar al lugar donde dejaste la marca, hay que pulsar la tecla de «comilla simple» '
seguido de la tecla que identifica la marca, en nuestro ejemplo, es la tecla a
; de modo que el comando para saltar a la marca se ve así: 'a
.
Existen dos marcas especiales que el mismo Vim va actualizando: La última linea que fue editada en el buffer representada por '.
y la marca «anterior» representada por dos comillas simples ''
. Así que si por alguna razón brincas inconscientemente a una ubicación no deseada del buffer (cosa que me pasa mucho más a menudo de lo que quisiera), estas dos marcas te ayudarán a volver al lugar en el que te encontrabas justo antes de tu salto inesperado.
Encontrando texto: otra manera de moverse
Otra forma de movernos a través del buffer es buscar texto y Vim ofrece varias maneras de hacerlo, las primeras alternativas son utilizar los caracteres /
y ?
para a continuación escribir el patrón que quieres buscar. La diagonal busca el patrón hacia adelante en el buffer mientras que ?
lo hace hacia atrás. Si el patrón que buscas está en el documento, el editor resaltará cada coincidencia que encuentre para que puedas verlo fácilmente. Si quieres saltar entre todas esas coincidencias puedes utilizar la teclas n
y N
para ir y regresar a través de ellas.
Si el texto que quieres buscar está debajo del cursor, puedes buscarlo sin tener que escribirlo nuevamente usando /
o ?
. Simplemente pulsa las teclas *
o #
en modo --NORMAL--
sobre el texto que quieres buscar (hacia adelante o atrás respectivamente) en otros lados del buffer y brincar a la siguiente ocurrencia de esa palabra.
Al igual que en el caso anterior, n
/N
nos ayudan a avanzar/retroceder a través de las ocurrencias que encontramos en el buffer.
Además si pones atención en la parte inferior de la ilustración anterior, notarás que en cuanto pulso la tecla *
aparece el texto /\<profile\>
como si manualmente hubiera utilizado el modo de búsqueda (/
); la razón es porque en realidad eso es lo que pasa, cuando pulses la tecla *
Vim copiará el texto de la palabra debajo del cursor, cambiará él mismo a modo de búsqueda y escribirá la palabra copiada para iniciar la búsqueda, y todo eso solo te costó oprimir un botón. Los caracteres \<
y \>
que encierran a la palabra «profile» en nuestro ejemplo, son caracteres especiales que significan «inicio de palabra» y «fin de palabra» respectivamente, y se utilizan para decirle al editor que queremos encontrar cadenas que empiecen con «p«, terminen en «e» y que en medio contengan los caracteres «rofil«; es decir la palabra «profile«. Y por supuesto, también puedes escribir estos caracteres directamente al buscar patrones usando /
y ?
.
Con estos sencillos comandos podrás moverte con mayor agilidad y sin perderte a través de tus documentos. Espero que esta información te sea de utilidad.