Ich möchte verhindern, dass Vim scrollt (wenn das das richtige Wort ist), wenn ich ein Fenster horizontal teile.
Nehmen wir an, ich bearbeite eine 10-zeilige Datei in Vim. Ich habe ein einzelnes Fenster auf den Puffer und das Fenster ist 40 Zeilen hoch. Es gibt mehr als genug Platz für zwei Fenster übereinander, wobei beide den gesamten Puffer anzeigen. Und sagen wir, scrolloff
ist auf 4 gesetzt.
Wenn ich das Fenster horizontal teile, wird das ursprüngliche Fenster gescrollt, so dass genau scrolloff
-Zeilen zwischen dem oberen Rand des Fensters und der Zeile angezeigt werden, auf der sich der Cursor befindet - wenn mehr als scrolloff
-Zeilen zwischen den Zeilen wären Anfang des Fensters und der Cursorlinie - obwohl kein Scrollen erforderlich ist.
Anders ausgedrückt: Wenn der Cursor beim Teilen des Fensters in Zeile 1, 2, 3, 4 oder 5 steht, "bewegt" sich das ursprüngliche Fenster nicht (gut). Befindet sich der Cursor jedoch in Zeile 6, scrollt das Fenster so, dass Zeile 2 zur obersten sichtbaren Zeile wird ... damit scrolloff
-Zeilen (4) über der Cursorlinie sichtbar sind (nervig). Ähnlich, wenn der Cursor in Zeile 7 ist, wenn ich das Fenster spalte, scrollt das ursprüngliche Fenster zu Zeile 3, die zur obersten sichtbaren Zeile wird. Und so weiter.
Gibt es eine Möglichkeit, Vim so zu konfigurieren, dass das ursprüngliche Fenster nicht geblättert wird, wenn ich es horizontal teile?
Ich kann mir vorstellen, dass es möglich ist, <C-W>s
einer Funktion zuzuordnen, die das tut, was ich will, aber ich würde es vorziehen, dies möglichst per Konfiguration zu lösen.
Ich habe eine Lösung gefunden und die Antwort von hier ausgeliehen.
In meinem .vimrc
habe ich:
Und jetzt, wenn ich das Fenster horizontal mit <C-W>s
teile, scrollt das ursprüngliche Fenster überhaupt nicht.
Als Alternative zu Andy Stewart ist die Lösung hier, was ich in meinem .vimrc
verwende:
(1) Gehe nach oben links, dann markiere es auf x
und gehe zurück zu deiner Position.
(2) Erstellen Sie eine neue Aufteilung. Der Cursor wird in dieses neue geteilte Fenster verschoben
(3) Verwenden Sie zz
, um die Cursorlinie zu zentrieren.
(4) Gehen Sie zurück zu dem Fenster, in dem Sie den Split erstellt haben.
(5) Gehe zurück zu x
mark und gehe dann zurück zu dem Ort, an dem du warst (um Schritt (1) zu simulieren)
(6) Geh zurück zu dem Split, den du erstellt hast.
Eine weitere Möglichkeit besteht darin, zz
auf den neu geöffneten Teil zu setzen, damit der Cursor im neuen Fenster einfacher zu fangen ist. Mein Gehirn kann sich automatisch auf die mittlere Reihe der neuen Teilung konzentrieren.
Tags und Links vim