Ir al enésimo símbolo de la línea

85

¿Cómo mover el cursor al n-ésimo símbolo de la izquierda en Vim?

Una de las soluciones que veo es presionar 0n<right-arrow>, se moverá a la posición n + 1. ¿Hay alguna forma más natural de hacerlo?

Nutel
fuente
1
La solución de flecha derecha funcionó para mi problema ... thnx
raj_gt1
¿Quién usa en <right arrow>lugar de lin vim?
LRDPRDX

Respuestas:

129

La pipa '|' el personaje puede ser lo que quieras:

Para ir a la columna 25 en una línea en modo normal, presione 25|

Para ir a la columna 37 en una línea en modo normal, presione 37|

y así. . .

Herbert Sitz
fuente
Genial, eso era lo que estaba buscando
Nutel
4
@CamilB Intente algo como $3h, que lo moverá al final de la línea y luego 3 caracteres a la izquierda.
Jeff Klein
Más sobre esto en vim help :help bar. Cuando lo encontré, hizo que comentar y descomentar mucho más fácilmente XD Después de descubrir esto, no confío en complementos externos de comentarios / descomentarios, la vida de la edición de código es mucho mejor ahora :)
Avi Mehenwal
40

EDITAR: leyó mal su pregunta.

puede avanzar a un símbolo en particular escribiendo fseguido del símbolo en cuestión:

si desea pasar al tercero $, escriba:

3f$

para ir hacia atrás, usa la "F" mayúscula

F$

para llegar primero al final de la línea, use "$"

por lo que las pulsaciones de teclas para encontrar el tercer $ desde el final de una línea son:

$3F$

Me gusta tener algo como esto a mano cuando uso Vim:
http://www.lagmonster.org/docs/vi.html

Ramy
fuente
1
Este fue el primer resultado en google y esto era lo que estaba buscando, gracias
kgwong
este movimiento se agregará también a otros comandos, como: cambiar de la posición actual a la segunda aparición del carácter "e" - c2te :)
Vũ Tô
8

No estoy seguro de si te refieres al enésimo carácter oa la enésima aparición de un carácter; el segundo ha sido respondido, así que responderé al primero.

^lo llevará al comienzo de la línea excluyendo los espacios en blanco (es decir, a la primera columna no blanca) y |(barra vertical) o 0(cero) lo llevará al primer carácter. Luego l(L minúscula) lo llevará a la derecha; y 7lte llevará siete caracteres a la derecha. Así que todos juntos, ir a la (n + 1) -ésimo carácter de la línea, para n = 7, 07l.

Chris Morgan
fuente
Veo que ha editado la pregunta ahora; len lugar de la flecha derecha es lo mejor que obtendrá. (¿Está familiarizado con la navegación hjkl?)
Chris Morgan
Sé que el verdadero vimmer no debería usar flechas, pero utilizo algunas otras aplicaciones que no admiten la vinculación de teclas de bajo nivel y la única forma de navegar son las flechas, por lo que para facilitar el cambio entre ellas, utilizo flechas
Nutel
@Vetal: De vez en cuando me siento frustrado cuando el desplazamiento simplemente no funciona en otras aplicaciones ... hjkl son mucho más agradables que las flechas.
Chris Morgan
Como señala la respuesta de Herbert Sitz, |solo va al primer carácter porque el valor [count]predeterminado es 1; en realidad va al [count]carácter número uno en la línea, por lo que 8|es como, 07lexcepto que es un solo movimiento en lugar de dos.
hobbs
Creo que debería prestar atención a lo que hacen los personajes. Debería haber pensado que era improbable que hubiera dos formas de hacer lo mismo.
Chris Morgan