Wie setze ich die aktuelle Zeile in vim oben / in der Mitte / unten auf dem Bildschirm?

118

Jeder schnellere Navigationstrick, um die Zeile zu platzieren, auf der sich der Cursor im Moment befindet

  • oben auf dem Bildschirm?
  • Bildschirmmitte?
  • Unten auf dem Bildschirm?
mtk
quelle

Antworten:

153

z<CR>oder zt setzt die aktuelle Zeile an den oberen Bildschirmrand ( <CR>== Enter)

z.oder zz setzt die aktuelle Zeile in die Bildschirmmitte

z-oder zb setzt die aktuelle Zeile an den unteren Bildschirmrand

( z<CR>, z.Und z-setzt den Cursor in der ersten nicht leeren Spalte. zt, zzUnd zbverläßt den Cursor in der aktuellen Spalte)

Weitere Informationen zum Scrollen finden Sie unter http://vimdoc.sourceforge.net/htmldoc/scroll.html oder
in der Version vim type:help scroll-cursor

mtk
quelle
14
Sie können auch zzanstelle vonz.
Evilsoup
2
Ich hatte noch nie davon gehört z.. Ich glaube, ich bevorzuge es, zwei verschiedene Tasten zu drücken, anstatt zweimal zu drücken. Sie können parallele Tastenanschläge gleichzeitig ausführen, solange diese in der richtigen Reihenfolge landen. Die Zeit zwischen den Treffern kann sehr kurz sein, was dies zu einer sehr schnellen Option macht. Die Tasten zund .sind Spiegelbilder (zumindest auf meiner en-GB-Tastatur). Sie könnten ein Doppeltippen des bevorzugen z, und es ist toll, dass wir beide Optionen haben.
Drew Noakes
15 Jahre vim und ich kannte dieses handliche kleine Ding nicht! Upvote!
PnotNP
14

Ausgabe der :help scroll-cursor@mtk-Erwähnungen. Beachten Sie, dass zwischen zzund ein Unterschied besteht z..


Scrollen relativ zum Cursor (Scroll-Cursor)

Mit den folgenden Befehlen wird das Bearbeitungsfenster (der angezeigte Teil des Puffers) neu positioniert, während sich der Cursor in derselben Zeile befindet:

z<CR>                   Redraw, line [count] at top of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zt                      Like "z<CR>", but leave the cursor in the same
                        column.  {not in Vi}

z{height}<CR>           Redraw, make window {height} lines tall.  This is
                        useful to make the number of lines small when screen
                        updating is very slow.  Cannot make the height more
                        than the physical screen height.

z.                      Redraw, line [count] at center of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zz                      Like "z.", but leave the cursor in the same column.
                        Careful: If caps-lock is on, this command becomes
                        "ZZ": write buffer and exit!  {not in Vi}

z-                      Redraw, line [count] at bottom of window (default
                        cursor line).  Put cursor at first non-blank in the
                        line.

zb                      Like "z-", but leave the cursor in the same column.
                        {not in Vi}

Horizontal scrollen (horizontal scrollen)

Bei den folgenden vier Befehlen folgt der Cursor dem Bildschirm. Wenn das Zeichen, auf dem sich der Cursor befindet, vom Bildschirm entfernt wird, wird der Cursor zum nächstgelegenen Zeichen auf dem Bildschirm bewegt. Der Wert von 'sidescroll' wird nicht verwendet.

z<Right>    or
zl                      Move the view on the text [count] characters to the
                        right, thus scroll the text [count] characters to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

z<Left>      or
zh                      Move the view on the text [count] characters to the
                        left, thus scroll the text [count] characters to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

zL                      Move the view on the text half a screenwidth to the
                        right, thus scroll the text half a screenwidth to the
                        left.  This only works when 'wrap' is off.  {not in
                        Vi}

zH                      Move the view on the text half a screenwidth to the
                        left, thus scroll the text half a screenwidth to the
                        right.  This only works when 'wrap' is off.  {not in
                        Vi}

Bei den folgenden beiden Befehlen wird der Cursor nicht im Text bewegt, sondern nur der Text rollt auf dem Bildschirm.

zs                      Scroll the text horizontally to position the cursor
                        at the start (left side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}

ze                      Scroll the text horizontally to position the cursor
                        at the end (right side) of the screen.  This only
                        works when 'wrap' is off.  {not in Vi}
Drew Noakes
quelle