Comment faire pour que Vim affiche toujours plusieurs lignes après EOF?

15

Dans Vim, je n'aime pas comment, lorsque vous atteignez la fin du fichier, il place la dernière ligne en bas de l'écran.

Est-il possible de faire de la dernière ligne quelque chose comme 10 lignes au-dessus du bas de l'écran et de simplement faire des lignes vides en dessous?

Miguel Vera
la source
2
Lorsque votre curseur atteint la dernière ligne du fichier, si vous le frappez, zzil redessine l'écran et positionne la ligne actuelle au centre de la fenêtre qui devrait afficher quelques ~lignes après EOF.
user9433424
oui, mais si vous déplacez à nouveau le curseur en le positionnant à nouveau en bas.
Miguel Vera,
3
Il semble que vous ayez l' scrolloffoption définie. Essayez :set scrolloff=0et ce comportement devrait changer.
Tumbler41
1
Vous pouvez lire votre réponse ici: stackoverflow.com/questions/7406814/… Il y a plus de réponses à cela, fondamentalement ce n'est pas possible, seulement avec des solutions de contournement.
mike
En effet le comportement a été corrigé! merci
Miguel Vera

Réponses:

16

Vous pouvez utiliser ctrlEpour faire défiler votre fichier, lorsque vous êtes à la fin du fichier, il ajoutera une ligne "virtuelle" afin que la dernière ligne du fichier ne se trouve pas au bas des fenêtres.

De plus, vous pouvez utiliser l'option scrolloffpour toujours laisser quelques lignes après votre curseur, ajoutez ceci à votre .vimrc:

set scrolloff=10

Pour plus de détails, voir :h 'scrolloff'et :h CTRL-E.

statox
la source
1
Malheureusement, le réglage scrolloffsur 10 ne montrera toujours pas les lignes APRÈS EOF comme OP voulait.
Tumbler41
En effet, c'est la raison pour laquelle je l' ai suggéré à l' aide CTRL-Eet scrolloffétait juste « supplémentaire ». Maintenant, c'est une solution partielle, OP est libre de ne pas l'accepter car il ne répond pas complètement à la question.
statox
1
Bien que ce ne soit qu'une solution partielle, je pense que CTRL-Ec'est ce que je cherchais. J'aimerais bien qu'il y ait un moyen d'afficher automatiquement les lignes après EOF.
Miguel Vera
@Miguel Je suis content que cela corresponde à vos besoins. Je pense qu'il pourrait être possible de créer un mappage qui s'appellerait <C-e>lorsque vous faites défiler vers le bas, mais je ne suis vraiment pas sûr que cela fonctionnerait correctement ... J'essaierai de voir ce qui est possible mais je ne suis pas sûr que je ' ll sera en mesure de créer quelque chose de pratique.
statox
2

À mon avis, la solution la plus simple consistait à ajouter zzà jet k. Cela a pour effet secondaire majeur de centrer votre curseur. Cela ne me dérange pas et je le préfère de beaucoup à tendre le cou. J'ai essayé scrolloffet CTRL-Ec'est juste mal à l'aise.

Tapez ce qui suit dans :ou .vimrc

nnoremap j jzz

nnoremap k kzz

Source: http://vim.wikia.com/wiki/Keep_your_cursor_centered_vertically_on_the_screen

Carlos Vigil
la source