43 votes

Dans vim, comment faire défiler un tampon pour que l'emplacement du curseur soit centré sur l'écran ?

Dans vim, il m'arrive souvent d'accéder à une marque que j'ai faite, ou à un résultat de recherche, et le curseur se trouve tout en bas ou tout en haut de l'écran. À ce moment-là, pour que l'écran soit plus facile à lire, je veux faire défiler la mémoire tampon de façon à ce que le texte sous le curseur soit au milieu de l'écran.

Est-ce possible dans vim ? Comment faites-vous ?

60voto

Peter Rincker Points 14594

Cela va centrer la ligne actuelle

zz

En option, vous pouvez définir scrolloff à quelque chose de grand comme 999 et la ligne de travail sera toujours au centre, sauf lorsque vous êtes vers le début ou la fin du fichier.

:set scrolloff=999

13voto

Anders Rejdebrant Points 140

Il existe un moyen de garder le curseur centré même près de l'EOF.

scrolloff=999 fonctionne bien sauf près de la fin du tampon où il ne centre pas le curseur, je ne suis pas au courant d'une correction qui permet à scrolloff de garder le curseur centré à la fin du tampon.

Une alternative à scrolloff=999 est de remapper vos commandes de navigation pour les centrer sur le curseur. Je fais ce qui suit dans mon _vimrc/.vimrc :

" Avoids updating the screen before commands are completed
set lazyredraw

" Remap navigation commands to center view on cursor using zz
nnoremap <C-U> 11kzz
nnoremap <C-D> 11jzz
nnoremap j jzz
nnoremap k kzz
nnoremap # #zz
nnoremap * *zz
nnoremap n nzz
nnoremap N Nzz

Le curseur sera ainsi centré verticalement jusqu'à la fin du tampon :)

8voto

Michael Foukarakis Points 14892

L'option "scrolloff" (décalage de défilement) détermine le nombre de lignes de contexte que vous souhaitez voir au-dessus et au-dessous du curseur. Si vous la fixez à 5, par exemple, il y aura toujours 5 lignes visibles au-dessus et au-dessous du curseur pendant le déplacement/le défilement. Le réglage de l'option "scrolloff" sur une valeur élevée permet au curseur de rester sur la ligne centrale lorsque cela est possible :

:set so=999

Pour rétablir le comportement normal, entrez :

:set so=0

Si vous passez souvent de l'un à l'autre, vous pouvez créer un mappage pour basculer rapidement :

:nnoremap <Leader>ts :let &scrolloff=999-&scrolloff<CR> " ToggleScrolloff

3voto

mateusz.fiolka Points 1181

Tu dois appuyer sur z deux fois, comme : zz

1voto

Le plugin scrollfix.vim est excellent pour cela. C'est ce que j'utilise, et il fonctionne comme un charme. Vous pouvez le trouver sur github ici.

Le plugin scrollfix vous permet de contrôler exactement où (verticalement le long du tampon) votre curseur reste fixé. Par défaut, il est à 60% du tampon à partir du haut, mais ceci est personnalisable. Cela affecte la position du curseur en mode normal ainsi qu'en mode insertion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X