Comment mettre la ligne actuelle en haut / centre / bas de l'écran dans vim?

118

Toute astuce de navigation plus rapide pour placer la ligne où se trouve le curseur à la

  • haut de l'écran?
  • centre de l'écran?
  • bas de l'écran?
mtk
la source

Réponses:

153

z<CR>ou zt met la ligne actuelle en haut de l'écran ( <CR>== Enter)

z.ou zz met la ligne en cours au centre de l'écran

z-ou zb met la ligne en cours au bas de l'écran

( z<CR>, z., Et z-met le curseur dans la première colonne non vide. zt, zzEt zblaisse le curseur dans la colonne en cours)

Plus d'informations sur le défilement sur http://vimdoc.sourceforge.net/htmldoc/scroll.html ou
en type vim:help scroll-cursor

mtk
la source
14
Vous pouvez également utiliser à la zzplace dez.
evilsoup le
2
Je ne l' avais pas entendu parler z.avant. Je pense que je préfère avoir deux touches différentes à frapper plutôt qu'une double pression. Vous pouvez effectuer des frappes parallèles simultanément, à condition qu'elles atterrissent dans le bon ordre, et le temps entre les coups peut être très court, ce qui en fait une option très rapide. Les touches zet .sont des miroirs les uns des autres (au moins sur mon clavier en-GB). Vous pouvez raisonnablement préférer une double frappe de la z, et c'est génial, nous avons les deux options.
Drew Noakes
15 ans de vim et je ne savais pas cette petite chose pratique! Upvote!
PnotNP
14

La sortie des :help scroll-cursormentions @mtk. Notez qu'il y a une différence entre zzet z..


Défilement relatif au curseur (curseur de défilement)

Les commandes suivantes repositionnent la fenêtre d'édition (la partie du tampon que vous voyez) tout en maintenant le curseur sur la même ligne:

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}

Défilement horizontal (scroll-horizontal)

Pour les quatre commandes suivantes, le curseur suit l'écran. Si le caractère sur lequel se trouve le curseur est déplacé de l'écran, il est déplacé vers le caractère le plus proche affiché à l'écran. La valeur de 'sidescroll' n'est pas utilisée.

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}

Pour les deux commandes suivantes, le curseur n'est pas déplacé dans le texte, seul le texte défile à l'écran.

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
la source