:h motion.txt
.hjkl
porque mi mano derecha permanece encima del teclado. Al hacer esto, hace que este más cerca de las teclas circundantes del teclado. Para obligarme a utilizar esta combinación de teclas, he inhabilitado las flechas de dirección del teclado al usar Vim añadiendo estas líneas en el archivo ~/.vimrc
:hjkl
.hjkl
para moverse por el texto, es debido que el terminal Lear-Siegler ADM-3A donde Bill Joy empezó a desarrollar Vi, no tenía teclas con flechas en el teclado y utilizó hjkl
como izquierda/abajo/arriba/derecha.number
y relativenumber
. Puedes hacerlo escribiendo lo siguiente en el archivo .vimrc
:12j
. Además, si estoy en la línea 69 y mi objetivo es desplazar el cursor a la línea 81, esto me lleva a tener que hacer un cálculo mental (81 - 69 = 12). Esto consume muchos recursos mentales. Cuanto menos tenga que pensar sobre donde quiero ir, mejor.relativenumber
/ norelativenumber
, number
/ nonumber
¡y utiliza cualquier método que encuentres más útil!12j
. El 12 en 12j
es el número que lleva la cuenta.l
9 veces, puedes ejecutar simplemente 9l
.w
), al final de la siguiente palabra (e
), al comienzo de la palabra anterior (b
)y al final de la palabra anterior (ge
).W
), al final de la siguiente PALABRA (E
), al comienzo de la PALABRA previa (B
) y al final de la PALABRA previa (gE
). Para hacerlo sencillo de recordar, PALABRA utiliza las mismas letras de movimiento que palabra excepto que son en mayúsculas.a-zA-Z0-9_
. Una PALABRA es una secuencia que incluyen todos los caracteres excepto el espacio en blanco (cuando me refiero a espacio en blanco, esto incluye tanto un espacio, una separación por tabulador o un fin de línea) Para aprender más, echa un vistazo a la ayuda en Vim sobre este tema con estos comandos: :h word
o :h WORD
.l
, te llevará pulsar 21 veces la tecla. Utilizando w
, solo te llevará pulsar 6 veces. Utilizando W
, solo te llevará 4 pulsaciones. Tanto palabra como PALABRA son buenas opciones para mover el cursor en pequeñas distancias.0
. Para ir al último carácter de la línea actual, utiliza $
. Además, también puedes utilizar ^
para ir al primer carácter, que no sea un espacio en blanco de la línea actual y g_
para ir al último carácter que no sea un espacio en blanco en la línea actual. Si quieres ir a la columna n
en la línea actual, puedes utilizar n|
, donde "n" será el número de la columna donde quieres desplazar el cursor.f
y t
. Ambas opciones buscan hacia adelante en la línea actual, la diferencia entre f
y t
es que f
situa el cursor en el mismo lugar de la primera letra de la primera coincidencia encontrada y t
te lleva hasta justo antes de la primera letra de la primera coincidencia encontrada. Así que si quieres realizar una búsqueda y que el cursor se sitúe sobre la letra "h", utiliza fh
. Si quieres realizar una búsqueda de la primera "h" y quieres que el cursor se sitúe justo antes de esa primera coincidencia utiliza th
. Si después quieres seguir navegando hacia la próxima coincidencia de esa misma búsqueda, utiliza ;
. Para ir a la coincidencia previa de esa misma búsqueda en la línea actual, utiliza ,
.F
y T
son las opciones similares a f
y t
pero para buscar hacia atrás en el texto. Para buscar hacia atrás una "h", ejecuta Fh
. Para seguir buscando "h" en la misma dirección, usa ;
. Ten en cuenta que ;
después de Fh
continua la búsqueda hacia atrás y ,
después de fh
busca hacia adelante.$
. Si quieres ir a la letra "w" en la palabra "world", puedes utilizar fw
. Un buen truco para ir a cualquier punto de la línea actual es echar un vistazo a ver si existe alguna letra poco común como "w", "x" o "z" cerca de tu objetivo.. ! ?
seguido por un final de línea, un espacio en blanco o una tabulación. Puedes saltar a la siguiente frase mediante )
y a la frase previa con (
.(
y )
en Vim!.
seguido de una linea simple, quizás estás en el modo 'compatible'
. Añade :set nocompatible
en vimrc. En Vi, una frase termina en .
seguido de dos espacios en blanco. Deberías tener al ajuste nocompatible
en todo momento.}
y {
(¡también puedes practicar con la navegación por frases ( )
!):h sentence
y :h paragraph
para aprender más.%
. También puedes utilizar esto para encontrar cualquier pareja de paréntesis, llaves o corchetes.%
dentro de los diferentes paréntesis.%
utilizando complementos que añadan un indicador visual como vim-rainbow. Para más información, echa un vistazo a la ayuda en Vim con :h %
.n
con nG
. Por ejemplo, si quieres saltar a la línea 7, utiliza 7G
. Para saltar a la primera línea del texto, puedes utilizar tanto 1G
o gg
. Para saltar a la última línea del texto, utiliza G
.70%
. Para saltar a la mitad del archivo, puedes ejecutar 50%
.Ctrl-g
.H
, M
, o L
. (N.d.T: una regla para acordarse de estos atajos puede ser su correspondencia en inglés. H
de High, M
de Medium y L
de Low).H
y L
. Si utilizas 10H
, irás 10 líneas por debajo de la parte superior de la ventana. Si utilizas 3L
, se colocará el cursor 3 líneas por encima de la última línea de la ventana.Ctrl-F/Ctrl-B
), media pantalla (Ctrl-D/Ctrl-U
), y línea a línea (Ctrl-E/Ctrl-Y
)./
para hacer una búsqueda hacia adelante en el texto o ?
para buscar hacia atrás desde la posición del cursor. Para repetir la última búsqueda, puedes utilizar n
. Para repetir la última búsqueda pero en dirección opuesta, puedes utilizar N
./let
. Para buscar de nuevo "let" rápidamente, simplemente presiona n
. Para buscar "let" de nuevo, pero esta vez en dirección contraria, hazlo mediante la tecla N
. Si utilizas ?let
para realizar la búsqueda, buscará hacia atrás en el texto. Si usas n
, seguirá realizando la búsqueda en esa dirección en el texto, N
realizará ahora la búsqueda hacia adelante.:set hlsearch
. Ahora cuando busques /let
, resaltará todas las coincidencias que haya en todo el texto. Además, puedes configurar una búsqueda incremental con :set incsearch
. Esto resaltara el patrón de búsqueda mientras estás escribiéndolo. De manera predeterminada, la cadena buscada permanecerá resaltada, hasta que hagas otra búsqueda. Esto puede convertirse rápidamente en un inconveniente. Para inhabilitar ese resaltado, puedes ejecutar :nohlsearch
. Como utilizo esa funcionalidad de quitar el resaltado de manera frecuente, he creado un mapeado de esa funcionalidad. Para ello he añadido la siguiente línea en el archivo .vimrc:*
para buscar esa coincidencia hacia adelante en el texto, y con #
realizará la búsqueda hacia atrás. Si tu cursor, está sobre el texto "one", pulsando *
hará lo mismo que si hubieras escrito /\<one\>
.\<
como \>
en /\<one\>
significa que haga una búsqueda de la palabra completa. Y que no encuentre "one" dentro de una palabra mayor. Es decir, encontrará "one" pero no "onetwo". Si tu cursor está sobre "one" y quieres buscar las coincidencias de la palabra completa o que forme parte de otras palabras más grandes, necesitas utilizar g*
en vez de *
.mx
, donde x
puede ser cualquier letra del alfabeto a-zA-Z
. Existen dos maneras de volver a la marca establecida: de manera exacta (línea y columna) mediante ```x`` y a la línea con 'x
.ma
) en el primer archivo y otra marca "a" (ma
) en el segundo archivo.mA
) dentro de miArchivo.txt
, la próxima vez que ejecutes mA
en un archivo diferente, sobreescribirá la marca "A". Una ventaja de las marcas globales es que puedes saltar a cualquier marca global incluso si está dentro de un proyecto completamente diferente. Las marcas globales pueden viajar a través de los archivos.:marks
. Puedes comprobar que en la lista de marcas hay más marcas que las de a-zA-Z
. Algunas de ellas son::h marks
.j
no cuenta como un salto, incluso si bajas 10 pasos con 10j
. Ir a la línea 10 con 10G
si cuenta como un salto.:jumps
. Para más información echa un vistazo a la ayuda de Vim con :h jump-motions
.Ctrl-O
para moverte hacia arriba por la lista de saltos y con Ctrl-I
para moverte hacia abajo en la lista. También puedes saltar por diferentes archivos, lo que veremos en la siguiente parte.h, j, k, l, w, b, G, /, ?, n
. Repítelos suficientemente como para usarlos sin pensar en ellos.l
de manera repetida, busca un movimiento que te lleve de una manera más rápida a tu destino. Encontrarás que puedes utilizar w
para moverte entre palabras. Si descubres que ejecutas w
de manera repetitiva, busca si hay un comando de movimiento que te lleve al final de la línea de manera inmediata. Encontrarás que puedes utilizar $
. Si puedes describir de manera verbal lo que necesitas, hay muchas posibilidades de que Vim tenga una manera de hacer lo que necesitas.