Ich habe kürzlich entdeckt Ctrl+E und Ctrl+Y Kurzbefehle für Vim, die jeweils den Bildschirm um eine Zeile nach oben und unten bewegen, ohne den Cursor zu bewegen.
Kennen Sie einen Befehl, der den Cursor dort belässt, wo er sich befindet, aber den Bildschirm so verschiebt, dass die Zeile mit dem Cursor zur ersten Zeile wird? (Ein Befehl für die letzte Zeile wäre ein netter Bonus).
Ich kann dies erreichen, indem ich manuell drücke Ctrl+E (oder Ctrl+Y) die richtige Anzahl von Malen, aber einen Befehl zu haben, der dies irgendwie direkt tut, wäre nett.
Irgendwelche Ideen?
vim
!) Zusätzlich:
Ctrl-y und Ctrl-e Ändern Sie die Cursorposition nur, wenn sie vom Bildschirm verschoben wird.
Mit freundlicher Genehmigung von http://www.lagmonster.org/docs/vi2.html
Vim setzt voraus, dass sich der Cursor immer auf dem aktuellen Bildschirm befindet. Sie können jedoch die aktuelle Position mit einem Lesezeichen versehen und dann zu Ihrer Position zurückkehren.
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
Hier ist meine Lösung in vimrc:
"keep cursor in the middle all the time :)
nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
Damit der Cursor in der Mitte des Bildschirms bleibt und sich der Bildschirm nach oben oder unten bewegt.
So belassen Sie den Cursor bei Verwendung in derselben Spalte Ctrl+D, Ctrl+F, Ctrl+B, Ctrl+U, G, H, M, L, gg
sie sollten die folgende Option definieren:
:set nostartofline
Sie können Ihren Cursorbewegungsbefehlen eine Zahl voranstellen, die diesen Befehl so oft wiederholt
1Ctrl+E Wird besorgt Ctrl+E 10 mal statt eins.
Möglicherweise finden Sie Antworten auf diese Frage nützlich: Scrolling Vim relativ zum Cursor, benutzerdefinierte Zuordnung : Sie können ScrollToPercent(0)
aus dieser Frage verwenden, um dies zu tun.
zEnter macht genau das, was diese Frage verlangt.
Es funktioniert wo seltsamerweise zz würde nicht funktionieren (vim 7.4.1689 auf Ubuntu 2016.04 LTS ohne spezielle .vimrc)
Manchmal ist es nützlich, Text mit den Tasten K und J zu scrollen. Also habe ich diese "Scroll-Modus" -Funktion in meinem .vimrc (auch auf zs gebunden)
Überrascht verwendet niemand die Option Abrollen , die den Cursor in der Mitte der Seite hält. Probieren Sie es aus mit:
:set so=999
Es ist die erste empfohlene Methode im Vim-Wiki und funktioniert gut
Es gibt ein neues Plugin, das ich geschrieben habe. Es ermöglicht Ihnen, durch die gesamte Datei zu navigieren, ohne die Cursorposition zu verschieben. Es basiert darauf, die Linien zwischen Ihrer Position und Ihrer Zielposition zu falten und dann über die Falte zu springen. Oder brechen Sie es ab und bewegen Sie sich überhaupt nicht.
Es ist auch einfach, schnell zwischen dem Cursor in der ersten Zeile, dem Cursor in der letzten Zeile und dem Cursor in der Mitte umzuschalten, indem Sie einfach auf j, k oder l klicken (wenn Sie sich im Modus des Plugins befinden).
Ich denke, es würde hier gut passen: https://github.com/anschnapp/move-less