¿Hay alguna forma de mover el cursor una cantidad relativa de líneas en vi / vim? Digamos que tiene el cursor 10 líneas debajo de un bloque de código que desea eliminar. Si tiene los números de línea mostrados en orden relativo, sería bueno tener un "comando saltar 10 líneas hacia arriba" que lo lleve allí.
¿O tal vez es mejor mostrar los números de línea absolutos e ir xgg donde x es el número de línea?
Respuestas:
Sí, por supuesto que hay una manera.
j
yk
moverse hacia abajo y hacia arriba una línea, entonces10j
y10k
moverse hacia abajo y hacia arriba diez líneas. Puede repetir cualquier movimiento poniendo un número antes.Es posible que también desee hacerlo
set relativenumber
si esto es algo que hace mucho; lo ayudará a ahorrar contando al imprimir números de línea en relación con la línea actual, en lugar de números absolutos.fuente
set relativenumber
yset number
. Esto le dará números de línea relativos con un número de línea absoluto para la línea en la que se encuentra el cursor.enter
(para números de línea absolutos, simplemente preceda con dos puntos). Si estás acostumbrado aj
yk
y un diseño de teclado normal, que no puede ser demasiado útil, pero como usuario Colemak flecha utilizando,enter
es más fácil de alcanzar que la Colemakj
(QWERTYy
clave)Es posible que mover 10 líneas hacia arriba y hacia abajo no se adapte a su tarea ni a otras opciones. Considere otros movimientos:
Ctrlf, Ctrlbavance y retroceso de la página.
}, {avance y retroceda un párrafo.
Puede escribir reglas en su vimrc para enlazar
10j
a una clave, digamosJ
para bajar 10 líneas agregando la siguiente línea a su archivo vimrc:map <S-j> 10j
Sin embargo, estaría sobrescribiendo el útil
J
comando existente (unir dos líneas). Encontrar una combinación de teclas sin usar bien posicionada para10j
/10k
podría ser difícil, por lo que sugiero usar los movimientos existentes que mencioné.También es posible que desee saber que puede retroceder a una palabra que ve haciendo:
?someword
y avanzar a una palabra que ve haciendo/someword
. Estos serán más rápidos que intentar subir / bajar 10 líneas y luego reposicionar el cursor en la ubicación exacta. Si no puede pensar en una cadena de búsqueda simple para la línea en cuestión, siempre puede ir al número de línea como dijo (xgg
).fuente
Estaba jugando con vim y noté que -te mueve hacia arriba y +te mueve hacia abajo, para que puedas:
o se puede utilizar kya que usted está probablemente más utilizada para hjk lel movimiento del cursor.
fuente
enter
funciona igual que+
después de un número y es más fácil de alcanzar la mayor parte del tiempo