¿Cómo poner la línea actual en la parte superior / central / inferior de la pantalla en vim?

118

Cualquier truco de navegación más rápido para colocar la línea en la que se encuentra el cursor en el momento

  • parte superior de la pantalla?
  • centro de la pantalla?
  • ¿parte inferior de la pantalla?
mtk
fuente

Respuestas:

153

z<CR>o zt coloca la línea actual en la parte superior de la pantalla ( <CR>== Enter)

z.o zz pone la línea actual al centro de la pantalla

z-o zb pone la línea actual al final de la pantalla

( z<CR>, z.Y z-pone el cursor en la primera columna no en blanco. zt, zzY zbdeja el cursor en la columna actual)

Más información sobre desplazamiento en http://vimdoc.sourceforge.net/htmldoc/scroll.html o
en vim type:help scroll-cursor

mtk
fuente
14
También puede usar en zzlugar dez.
evilsoup
2
No había escuchado z.antes. Creo que prefiero tener dos teclas diferentes para golpear en lugar de presionar dos veces. Puede hacer pulsaciones de teclas paralelas al mismo tiempo, siempre que aterricen en el orden correcto, y el tiempo entre pulsaciones puede ser bastante corto, lo que hace que esta sea una opción muy rápida. Las teclas zy .son espejos entre sí (al menos en mi teclado en-GB). Podría razonablemente preferir tocar dos veces el z, y es genial que tengamos ambas opciones.
Drew Noakes
¡15 años de vim y no conocía esta pequeña cosa útil! ¡Votación a favor!
PnotNP
14

Salida de las :help scroll-cursormenciones @mtk. Tenga en cuenta que hay una diferencia entre zzy z..


Desplazamiento relativo al cursor (cursor de desplazamiento)

Los siguientes comandos reposicionan la ventana de edición (la parte del búfer que ve) manteniendo el cursor en la misma línea:

z<CR>                   Redraw, line [count] at top of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zt                      Like "z<CR>", but leave the cursor in the same
                        column.  {not in Vi}

z{height}<CR>           Redraw, make window {height} lines tall.  This is
                        useful to make the number of lines small when screen
                        updating is very slow.  Cannot make the height more
                        than the physical screen height.

z.                      Redraw, line [count] at center of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zz                      Like "z.", but leave the cursor in the same column.
                        Careful: If caps-lock is on, this command becomes
                        "ZZ": write buffer and exit!  {not in Vi}

z-                      Redraw, line [count] at bottom of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zb                      Like "z-", but leave the cursor in the same column.
                        {not in Vi}

Desplazarse horizontalmente (desplazamiento horizontal)

Para los siguientes cuatro comandos, el cursor sigue la pantalla. Si el carácter en el que está el cursor se mueve fuera de la pantalla, el cursor se mueve al carácter más cercano que está en la pantalla. El valor de 'sidescroll' no se usa.

z<Right>    or
zl                      Move the view on the text [count] characters to the
                        right, thus scroll the text [count] characters to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

z<Left>      or
zh                      Move the view on the text [count] characters to the
                        left, thus scroll the text [count] characters to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

zL                      Move the view on the text half a screenwidth to the
                        right, thus scroll the text half a screenwidth to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

zH                      Move the view on the text half a screenwidth to the
                        left, thus scroll the text half a screenwidth to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

Para los siguientes dos comandos, el cursor no se mueve en el texto, solo el texto se desplaza en la pantalla.

zs                      Scroll the text horizontally to position the cursor
                        at the start (left side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}

ze                      Scroll the text horizontally to position the cursor
                        at the end (right side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}
Drew Noakes
fuente