Die wichtigsten Bildlaufbefehle in Vim sind:
- Ctrl- Bund Ctrl- Fsowie PageUpund PageDownblättert durch die vollständige Seite
- Ctrl- Uund Ctrl- Dstandardmäßig eine halbe Seite scrollen
- Ctrl- Yund Ctrl- Eeine Zeile scrollen
Ich verliere jedes Mal den visuellen Kontext für die beiden ersteren, daher habe ich die schlechte Angewohnheit entwickelt, die letzteren ( Ctrl- Yund Ctrl- E) wiederholt zu treffen .
Was sind die am wenigsten zu beanstandenden Problemumgehungen / Plugins, da es derzeit keine Erstanbieterunterstützung für reibungsloses Scrollen gibt?
Ich verwende sowohl Vim als auch GVim je nach Aufgabe und bin glücklich, sie separat anzupassen, wenn es keinen wirklich guten Hack gibt, der für beide funktioniert. Das Mausrad funktioniert gut in GVim, aber ich suche nach tastaturbasierten Lösungen.
vim
scroll
smooth-scrolling
Andrew Wagner
quelle
quelle
Antworten:
Update : Ich habe diesen Code, der gemäß den Richtlinien unter etwas überarbeitet wurde, jetzt
:help write-plugin
in ein Github-Repo verschoben .Verwenden der Tastatur
Folgendes habe ich in meinem
.vimrc
:Eigenschaften:
scroll
Option.sleep
Befehls anpassen ; ich verwende zehn Millisekunden). Hinweis : Genau wie beim Verlangsamen der Bildrate in einem Video wird beim ruckeligen Scrollen das ruckartige Scrollen ruckartig und nicht das sanfte Scrollen ausgeführt. Aber was auch immer für Sie am besten funktioniert.Hinweis : Denken Sie beim Kopieren und Einfügen daran, dass das
^
Zeichen ein Steuerzeichen angibt. Kopieren-Einfügen führt zu ungültigen Ergebnissen und diese müssen manuell eingegeben werden!^Y
- CTRL- Vdann CTRL-Y^E
- CTRL- Vdann CTRL-EDie Syntax
<C-U>
und<Enter>
style werden jedoch buchstäblich als diese Zeichen eingegeben. Der Befehl map konvertiert sie intelligent in Steuerzeichen.Verwenden der Maus
In der Frage wird erwähnt, dass das Scrollen mit der Maus in GVim gut funktioniert, aber eine Tastaturlösung erwünscht ist. Dies bedeutet für mich, dass der Fragesteller möglicherweise an einer Mauslösung interessiert ist, wenn diese im regulären Terminal Vim funktioniert.
Wenn ich die Mausunterstützung einschalte, kann ich problemlos durch das Mausrad scrollen. Außerdem ist für mich das reibungslose Scrollen am wichtigsten, wenn ich mich umschaue (dh im normalen Modus), nicht wenn ich bearbeite (im Einfügemodus) und wenn ich nicht aktiv bearbeite, müssen meine Hände auf dem bleiben Die Tastatur wird jederzeit entfernt, sodass dies gut funktioniert.
Auf der Grundlage dieser Frage scheint es jedoch, dass einige Leute mehr manuelle Einstellungen vornehmen müssen, als nur die Maus einzuschalten (ich benutze nur
set mouse=n
):Mein
.vimrc
hat die folgenden Zeilenquelle
In vims tips.txt gibt es einen einfachen Remap-Hack:
quelle
noremap <expr> <C-u> repeat("\<C-y>", 20)
Lesbarkeit neu geschrieben werden.:map <C-U> 20<C-Y>
Schamloser Plug, aber ich habe hier ein Plugin erstellt, mit dem Sie die Entfernung, Geschwindigkeit und Dauer der Bildlaufanimation einfach anpassen können: https://github.com/terryma/vim-smooth-scroll
quelle
Ein aktuelles Plugin
Ich habe hier etwas Ähnliches gepostet , aber im Grunde gibt es ein großartiges Plugin, das wir jetzt zum Scrollen verwenden können, Terryma / Vim-Smooth-Scroll . Es bietet ein sehr schönes und flüssiges Scrollen.
Die Installation ist ganz einfach:
1Ich benutze Vundle, also habe ich dies einfach in .vimrc.bundles angehängt :
In der neuesten Version von Vundle, die heute, am 29. April 2016, verfügbar ist, können Sie dies in Ihre .vimrc einfügen :
2Wie im Dokument angegeben, können Sie drei Argumente einrichten: Entfernung , Dauer und Geschwindigkeit .
Ich verwende dies in meiner .vimrc- Datei:
quelle
<C-E>
und scrollen<C-Y>
.Ich stelle die Tastaturwiederholung auf sehr schnell ein, etwa 120 Zeichen / Sekunde, und die Verzögerung ist gering. Dann ordne ich 4j zu und 4k navigiere mit j und k im Quellcode auf und ab, wodurch der Cursor schön schnell schnell und ziemlich sanft auf und ab bewegt wird. Aber hier ist der gute Teil, und dies funktioniert unter Linux, nicht unter Windows. Seit einigen Jahren funktioniert die Tastatureingabe von X11 so, dass beim Drücken und Halten von j offensichtlich j Zeichen ausgegeben werden. Wenn Sie dann j gedrückt halten und dann auch die Strg-Taste drücken, gibt X11 cj-Zeichen aus, ohne dass Sie die j-Taste erneut drücken müssen. Wenn Sie dann die Strg-Taste loslassen und weiterhin j drücken, setzt X11 das Setzen von j erneut fort. Mit j bewegt sich der Cursor also schön und sanft nach unten, und Sie können regelmäßig die Strg-Taste drücken, ohne j loszulassen, um ihm einen Schub zu geben.
Außerdem mache ich das, was Devin macht, und setze den Scrolloffset auf 5.
Zuletzt tausche ich Strg und Feststelltaste. Die Standardposition der Strg-Taste ist vollständig verzögert (keine Straftat beabsichtigt). Sie müssen Ihre linke Hand drehen. Ich benutze fast nie Feststelltaste, also tausche ich sie. Dann kann mein linker rosa Finger die Strg-Taste ohne Yoga-Bewegungen erreichen.
Diese Dinge haben jahrelang für mich funktioniert. Ich benutze nur vim, niemals gvim.
quelle
Dies ist kein reibungsloses Scrollen, aber so gehe ich damit um, dass beim Springen von Seiten kein Kontext verloren geht.
setze so = 7
'scrolloff' 'so' number (Standard 0) global
{not in Vi}
Minimale Anzahl von Bildschirmzeilen, die über und unter dem Cursor bleiben sollen. Dadurch wird ein Kontext sichtbar, in dem Sie arbeiten. Wenn Sie einen sehr großen Wert (999) festlegen, befindet sich die Cursorzeile immer in der Mitte des Fensters (außer am Anfang oder Ende der Datei oder wenn lange Zeilen umbrochen werden). Zum horizontalen Scrollen siehe 'Seitencrolloff'. HINWEIS: Diese Option wird auf 0 gesetzt, wenn 'kompatibel' eingestellt ist.
quelle
Das Plugin cskeeters / vim-Smooth-Scroll unterstützt das reibungslose Scrollen und erfordert keine Konfiguration. Es unterstützt mit smooth scrolling zu unterstützen
zt
,zz
undzb
. Es ist eine Abzweigung von Terrymas Plugin . Einige der Open-Pull-Anforderungen wurden angewendet.quelle
... wobei 'N' die Anzahl der einzelnen Zeilen ist, die Sie scrollen möchten.
Im wahrsten Sinne des Wortes nicht glatt, aber Sie behalten die Tastatur.
quelle
Ich habe gerade dieses Plugin „beschleunigte-glatt-Scroll“ ( „Vim - Plugin für eine beschleunigte glatte Spirale (Mapping genannt
<C-D>/<C-U>
,<C-F>/<C-B>)
“) , die zum Beispiel durch Vundle verwendet werden kann , indem Sie diese Zeile in Ihrer .vimrc setzen:Starten Sie dann Vim neu und führen Sie den
:PluginInstall
Befehl aus. Starten Sie Vim erneut und verwenden Sie die Befehle<C-D>
( Ctrl+D) und<C-O>
( Ctrl+O) normal.Leider bewegt dieses Plugin auch den Cursor anstelle dessen, was ich wollte: einfach den Bildschirm wie die Befehle
<C-E>
und scrollen<C-Y>
.quelle
Dies kombiniert viele dieser Antworten, und das ist, was ich benutze.
quelle