Wie zentriere ich die aktuelle Zeile auf dem Bildschirm?

23

Gibt es eine Möglichkeit, die gerade bearbeitete Linie auf dem Bildschirm zu zentrieren? Dies ist manchmal erforderlich, um oberhalb und unterhalb der aktuellen Zeile mehr Kontext zu sehen.

Thameera
quelle

Antworten:

28

Mit den Befehlen z.und zzwird die Zeile neu zentriert, auf der sich der Cursor befindet. z.Bewegt den Cursor auch zum ersten Nicht-Leerzeichen in der Zeile, während zzder Cursor dort bleibt, wo er ist.

Es gibt ähnliche Befehle für den oberen ( z<CR>/ zt) und unteren ( z-/ zb) Bereich des Fensters.

Die Versionen dieser Befehle, die mit einem Buchstaben enden, behalten die Cursorspalte bei, während diejenigen, die mit Interpunktion enden, den Cursor bewegen.

Jamessan
quelle
6

Tippe, zzum die aktuelle Zeile auf dem Bildschirm zu zentrieren:

Bildbeschreibung hier eingeben

Rückgängig machen
quelle
Perfekt! Ich habe dies zu meinem BufReadPost-Autocmd hinzugefügt, damit ich die Bearbeitung mit der wiederhergestellten und auf dem Bildschirm zentrierten Cursorzeile fortsetze:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | "normal! g'\"zz"
John P,
Upvote für die Animation :-)
2

Ja, im normalen Modus können Sie dies verwenden zz. Da aber die docs vorwarnen, mit capslock vorsichtig sein , da ZZdie Puffer - Datei schreiben und beenden.

HAL 9001
quelle
Aus welchem ​​Grund auch immer wurde dies zu einem großen Streitpunkt in einem anderen SO / SE-Thread. Es schien Konsens darüber zu bestehen, dass Sie die Umschalttaste nach Bedarf auf unbestimmte Zeit gedrückt halten und die Feststelltaste auf Systemebene neu zuordnen sollten, um die Versuchung zu beseitigen , keine Feststelltaste mehr. Ansonsten ist es deine eigene Schuld. Ich vermute, sie hatten noch nie mit Präprozessor-Makros zu tun ...
John P
1

Im normalen Modus zzwird die Linie, die sich derzeit unter dem Cursor befindet, in die Mitte des Bildschirms verschoben.

Pythor
quelle