¿Cómo centro la línea actual en la pantalla?

23

¿Hay alguna forma de centrar la línea que estoy editando en la pantalla? Esto a veces es necesario para ver un poco más de contexto por encima y por debajo de la línea actual.

thameera
fuente

Respuestas:

28

Los comandos z.y zzvolverán a centrar la línea en la que está el cursor. z.también mueve el cursor al primer carácter que no sea un espacio en blanco en la línea, mientras zzmantiene el cursor donde está.

Hay comandos similares para la parte superior ( z<CR>/ zt) y la parte inferior ( z-/ zb) de la ventana.

Las versiones de estos comandos que terminan en una letra mantienen la columna del cursor, mientras que las que terminan en puntuación mueven el cursor.

jamessan
fuente
6

Escriba zzpara centrar la línea actual en la pantalla:

ingrese la descripción de la imagen aquí

Deshacer
fuente
¡Perfecto! Agregué esto a mi autocmd BufReadPost, así que reanudo la edición con la línea del cursor restaurada y centrada en la pantalla:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | "normal! g'\"zz"
John P
Votación a favor de la animación :-)
2

Sí, en modo normal puedes usarlo zzpara hacerlo. Pero como los documentos advierten, tenga cuidado con el bloqueo de mayúsculas, ya ZZque escribirá el búfer en el archivo y saldrá.

HAL 9001
fuente
Por alguna razón, esto se convirtió en un gran punto de discusión en otro hilo SO / SE ... el consenso parecía ser que debería mantener presionada la tecla shift indefinidamente según sea necesario y reasignar la tecla de bloqueo de mayúsculas en el nivel del sistema para eliminar la tentación, etc. , no más mayúsculas bloqueadas. De lo contrario, es tu culpa. Supongo que nunca han tenido que lidiar con macros de preprocesador ...
John P
1

En modo normal, zzmoverá la línea actualmente debajo del cursor al centro de la pantalla.

Pythor
fuente