Come mettere la linea corrente nella parte superiore / centrale / inferiore dello schermo in vim?


118

Qualsiasi trucco di navigazione più veloce per posizionare la linea su cui si trova il cursore al momento

  • parte superiore dello schermo?
  • centro dello schermo?
  • parte inferiore dello schermo?

Risposte:


153

z<CR>o zt mette la riga corrente in cima allo schermo ( <CR>== Enter)

z.o zz mette la linea corrente al centro dello schermo

z-o zb mette la riga corrente in fondo allo schermo

( z<CR>, z.E z-mette il cursore nella prima colonna non vuota. zt, zzE zblascia il cursore nella colonna corrente)

Maggiori informazioni sullo scorrimento su http://vimdoc.sourceforge.net/htmldoc/scroll.html o
nel tipo vim:help scroll-cursor


14
Puoi anche usare al zzposto diz.
evilsoup il

2
Non ne avevo mai sentito parlare z.prima. Penso di preferire avere due diversi tasti da premere piuttosto che una doppia pressione. È possibile eseguire contemporaneamente sequenze di tasti parallele, purché atterrino nel giusto ordine e il tempo tra i colpi possa essere piuttosto breve, rendendolo un'opzione molto veloce. I tasti ze .sono speculari (almeno sulla mia tastiera en-GB). Potresti ragionevolmente preferire un doppio tocco di z, ed è fantastico che abbiamo entrambe le opzioni.
Drew Noakes,

15 anni di vim e non sapevo questa piccola cosa utile! Upvote!
PnotNP

14

Uscita delle :help scroll-cursormenzioni @mtk. Si noti che esiste una differenza tra zze z..


Scorrimento relativo al cursore (cursore di scorrimento)

I seguenti comandi riposizionano la finestra di modifica (la parte del buffer visualizzata) mantenendo il cursore sulla stessa riga:

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}

Scorrimento orizzontale (scorrimento orizzontale)

Per i seguenti quattro comandi il cursore segue la schermata. Se il carattere su cui si trova il cursore viene spostato fuori dallo schermo, il cursore viene spostato sul carattere più vicino che si trova sullo schermo. Il valore di 'sidescroll' non viene utilizzato.

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}

Per i seguenti due comandi il cursore non viene spostato nel testo, solo il testo scorre sullo schermo.

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}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.