Wie kann ich dafür sorgen, dass Vim nach EOF immer mehrere Zeilen anzeigt?

14

In Vim gefällt mir nicht, wie beim Erreichen des Dateiendes die letzte Zeile am unteren Bildschirmrand angezeigt wird.

Gibt es überhaupt eine Möglichkeit, die letzte Zeile so etwas wie 10 Zeilen über dem unteren Bildschirmrand und nur leere Zeilen darunter zu machen?

Miguel Vera
quelle
2
Wenn der Cursor die letzte Zeile der Datei erreicht, zzwird der Bildschirm neu gezeichnet und die aktuelle Zeile in der Mitte des Fensters positioniert, die einige ~Zeilen nach EOF angezeigt werden soll .
user9433424
ja, aber wenn Sie den Cursor erneut bewegen, positionieren Sie ihn wieder unten.
Miguel Vera
3
Es hört sich so an, als hätten Sie die scrolloffOption eingestellt. Versuchen Sie, :set scrolloff=0und dieses Verhalten sollte sich ändern.
Tumbler41
1
Sie können Ihre Antwort hier lesen: stackoverflow.com/questions/7406814/… Es gibt mehr Antworten darauf, im Grunde ist dies nicht möglich, nur mit Workarounds.
Mike
In der Tat wurde das Verhalten korrigiert! Danke
Miguel Vera

Antworten:

16

Mit können Sie ctrlEIhre Datei nach unten scrollen. Wenn Sie sich am Ende der Datei befinden, wird eine "virtuelle" Zeile hinzugefügt, sodass sich die letzte Zeile der Datei nicht am unteren Rand des Fensters befindet.

Zusätzlich können Sie die Option verwenden, scrolloffum immer einige Zeilen nach Ihrem Cursor zu lassen. Fügen Sie dies zu Ihrem hinzu .vimrc:

set scrolloff=10

Weitere Einzelheiten finden Sie unter :h 'scrolloff'und :h CTRL-E.

statox
quelle
1
Leider wird die Einstellung scrolloffauf 10 immer noch keine Zeilen NACH OP anzeigen.
Tumbler41
Tatsächlich ist das , warum ich mit vorgeschlagen CTRL-Eund scrolloffwar nur „zusätzliche“. Jetzt ist es eine Teillösung, OP kann sie nicht akzeptieren, da sie die Frage nicht vollständig beantwortet.
statox
1
Obwohl es nur eine Teillösung ist, denke ich, dass CTRL-Ees das ist, wonach ich gesucht habe. Ich würde mich freuen, wenn es eine Möglichkeit gäbe, die Zeilen nach EOF automatisch anzuzeigen.
Miguel Vera
@ Miguel Ich bin froh, dass es Ihren Bedürfnissen entspricht. Ich denke, es könnte möglich sein, ein Mapping zu erstellen, das aufgerufen wird, <C-e>wenn Sie nach unten scrollen, aber ich bin mir nicht sicher, ob es richtig funktioniert. Ich werde in der Lage sein, etwas Bequemes zu kreieren.
statox
2

Die meiner Meinung zznach einfachste Lösung war das Hinzufügen von jund k. Es hat den größten Nebeneffekt, den Cursor zu zentrieren. Es macht mir nichts aus und ich ziehe es vor, meinen Hals zu recken. Ich habe es versucht scrolloffund CTRL-Eist einfach unangenehm.

:Geben Sie Folgendes ein oder .vimrc

nnoremap j jzz

nnoremap k kzz

Quelle: http://vim.wikia.com/wiki/Ihre_Vorläufer_zentriert_vertikal_auf_dem_Bildschirm

Carlos Vigil
quelle