En el artículo de Comandos de Vim para movimientos horizontales ya vimos algunos comandos del Modo normal de Vim para movernos dentro de las propias líneas y ahora toca justo lo contrario, movernos entre todas las líneas.
Lo primero, lo que ya vimos en Movimientos básicos en Vim, puedes usar h j k l para moverte, en concreto j k para moverte arriba o abajo una línea.
También puedes combinar j k con números para desplazarte más líenas, por ejemplo: 20
k
para moverte 20 líneas hacia arriba.
Aquí te recomiendo que te pongas :set relativenumber
dentro de tu fichero .vimrc, más info en Configuración básica de Vim.
Ir al principio y al final del fichero
Para ir al principio del documento existe el comando gg
(regla memotécnica good game jejeje).
Mientras que para ir al final del fichero existe la tecla G
, ojo porque es mayúscula, tienes que pulsar SHIFT.
Por ejemplo, si quieres borrar todo el documento puedes hacer: g
g
0
d
G
(ve al principio del fichero, ponte al principio de la líena y borra hasta el final del fichero).
Ir a una línea en concreto
Para ir a una línea en concreto del fichero tienes dos variantes que se comportan igual, elige la que más te guste (o mejor recuerdes):
20
G
: Ir a la líena 20 del fichero:24
+Enter
: Ir a la líena 24 del fichero
Moverte entre líneas vacías
Este par de comandos viene bien para moverte por el fichero sin tener que usar tantas veces jjjjjj y kkkkkk.
Con `{ te mueves hacia atrás y cada vez que lo pulses el cursor se pondrá en una líena vacía del fichero.
Con }
es lo mismo solo que te mueves hacia adelante en las líneas vacías.
Como muchas veces al programar separamos el fichero por funciones, pues normalmente vas a tener una línea vacía siempre al comienzo de cada función, por eso este par de comandos puede ser bastante útil.
Mover el cursor en la pantalla
Otra cosa que puedes hacer es mover el cursor al principio, al final o al medio de la pantalla, en concreto se hace con las teclas mayúsculas de H M L.
Shift
+H
: Mueve el cursor al principio de la pantallaShift
+M
: Mueve el cursor a la mitadShift
+L
: Mueve el cursor al final de la pantalla
Scroll por el fichero sin mover el cursor
Para esto Vim tiene unos cuantos comandos:
Control
+y
: Mueve la pantalla una línea hacia arribaControl
+e
Mueve la pantalla una línea hacia abajoControl
+u
: Mueve la pantalla hacia arriba ½ páginaControl
+d
: Mueve la pantalla hacia abajo ½ páginaControl
+b
: Mueve la pantalla hacia una página entera hacia arribaControl
+f
: Mueve la pantalla hacia una página entera hacia abajo
Por cierto, pulsando dos veces zeta zz
puedes centrar el cursor en mitad de la pantalla sin moverlo de la línea que estaba.
Con el plugin de vim-sneak
https://github.com/justinmk/vim-sneak
Este plugin lo uso mucho a lo largo del día y lo recomiendo mucho. La idea es muy simple, una vez instalado, le das a la tecla s
y escribes dos letras, a continuación en la pantalla te saldrán marcadas las coincidencias de esas dos letras en las palabras que hay en la pantalla.
Lo que mola es que para ir a una coincidencia solo tienes que pulsar la letra que te sale en la pantalla, por lo que puedes navegar a cualquier parte de la pantalla usando solo 3 letras.
Vamos, que es como el comando f
y t
que vimos en Comandos de Vim para movimientos horizontales pero más chetado porque puedes escribir dos caracteres. De hecho, este plugin también puede sustituir a f
y t
para que funcionen también con dos caracteres.
Echa un ojo a Plugins interesantes para Vim y Neovim si quieres descubrir más plugins que recomiendo usar.