Moviéndose (eficientemente) verticalmente en Vim


27

Cuando quiero llegar a cierta parte de una palabra en Vim (horizontalmente), simplemente presiono w, b, fot (algo). ¿Hay una buena manera de hacer esto verticalmente? Por ejemplo, quiero llegar a una determinada palabra o letra de una línea que está debajo o encima de la línea en la que estoy actualmente.

PD: sin usar: (número de línea)

Respuestas:


29

H, My Lmoverá el cursor a la parte superior, central e inferior de la pantalla, respectivamente. Posteriormente, puede presionar zzpara centrar la pantalla en la línea en la que está el cursor.


55
Y zb y zt mueven la pantalla en la parte inferior y superior respectivamente
Jani Hartikainen

11
  • puedes usar la flecha arriba / abajo para mover una línea
  • puede escribir un número y luego usar la flecha arriba / abajo para subir / bajar tantas líneas
  • pequeños gsaltos a la primera línea del documento
  • Gsaltos de capital a la última línea del documento
  • etc.

Hay una gran cantidad de otras formas diferentes, vim es muy flexible a este respecto. Recomendaría obtener una hoja de trucos de vim primero para los comandos básicos y luego, a medida que tenga tiempo, revise la documentación de vim sobre este tema.

Enlace a una hoja de trucos: hoja de trucos

También:

  • /+ cadena + (Enter)busca la siguiente aparición de cadena desde el cursor hacia adelante hasta el final del documento
  • ? - hace lo mismo pero desde el cursor hacia atrás hacia el comienzo del documento


6

Salto buscando cadenas únicas donde quiero ir. En Vim, puedes hacer esto con:

/cadena de búsqueda

Por lo general, me desplazo hacia adelante y hacia atrás usando ny N una vez que ingresé una búsqueda.

También me desplazo usando Ctrl-F y Ctrl-B para pasar rápidamente por el código. Pero uso el truco de búsqueda con mayor frecuencia. A veces puede perderse al pasar por los resultados de búsqueda con n y N. Un buen comando para orientarse es Ctrl-G, que imprime algo como esto en la parte inferior de la pantalla de Vim:

"script.pl" línea 219 de 328 --66% - col 19-23


¡+1 para <CTRL> -F y <CTRL> -B, aunque tiendo a "engañar" y usar <PgUp> y <PgDown> casi tan a menudo!
Technomalogical

4

intente:: él motion.txt y: él arriba-abajo-movimientos

Tiene toda la lista de posibles movimientos arriba abajo


3

También puede hacer saltos a una línea específica en el documento emitiendo Ngg donde Nestá el número de línea que desea saltar.


1
quieres decir NG...
Peter

1
Yo también uso Ngg(ambas variantes funcionan)
soulmerge

1
Así como:N
viraptor


2

como se mencionó anteriormente H, M, L (como en mayúsculas, medias y minúsculas) hjkl son los comandos típicos del juego de consola para izquierda, abajo, arriba, derecha y funcionan de la misma manera en vi (j, k funcionan en gmail si habilita comandos de teclado)


1

<Ctrl>+D - abajo

<Ctrl>+U - arriba


Eso es un desplazamiento de media página. Para desplazamiento de página completa use <c-f>y<c-b>
Al.G.

1

Además de los movimientos verticales regulares, uso una versión modificada de /programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines . Por lo general, me muevo con las teclas de flecha, no hjkl (mucho tiempo usuario de otros editores antes de encontrar Vim, demasiado acostumbrado a las flechas / Inicio / fin / PgUp / PgDn para cambiar, incluso después de más de 5 años de uso exclusivo de Vim).

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Manteniendo presionada la tecla Ctrl, puedo ir visualmente al inicio / final o arriba / abajo de las filas de visualización. Para mí, esto es más eficiente que las alternativas, al menos.

Casi lo olvido: necesitaba modificar .Xdefaults para que funcione específicamente en urxvt, pero ese es probablemente un problema fuera del tema (con respuestas en Google).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.