Ich verwende Vim in einem Terminal, daher wird beim Scrollen mit dem Scrollrad die Syntax \e[A
und verwendet \e[B
(wobei \e
symbolisiert \x1b
oder escape).
Vim interpretiert dies jedoch, indem der Cursor eine Zeile nach oben oder unten bewegt wird. Das gewünschte Verhalten ist, dass der Bildschirm nach oben oder unten bewegt wird, wie <C-e>
und zu <C-y>
tun.
Wie kann ich Vim anweisen, den Bildschirm zu bewegen, wenn ich mein Scrollrad benutze, während sich der Cursor in derselben Zeile befindet? Dies sollte in allen gängigen Modi (Einfügen, Normal, Visuelle Auswahl) funktionieren.
Ich habe es zum Beispiel bereits versucht :nnoremap <esc>[A <C-e>
(durch <esc>
ein eingefügtes Escape-Zeichen zu ersetzen Ctrl+V Esc), aber dies erwies sich als zwecklos.
Ich verwende Vim 7.4.52 unter Ubuntu 14.04 mit GNOME.
Antworten:
Wie @Doorknob in seinem Kommentar sagte,
:set mouse=a
behebt das Problem.quelle
mouse=a
? Ich möchte nicht, dass versehentliche Klicks meinen Bearbeitungsfluss durcheinander bringen.a
inmouse=a
steht fürall
(nicht anhängen). from:help mouse
: "Die Maus kann für verschiedene Modi aktiviert werden ... Normalerweise würden Sie die Maus in allen vier Modi mit:: set mouse = a" aktivieren, zumindest in meinem VIM, wenn ich aktiviert habe, dass es nicht mit der Modusumschaltung zu tun hat (Nur Scrollen aktiviert - und "Klicken, um zur Zeile zu gehen")set mouse=a
ohne versehentliche Klicks den Fluss durcheinander bringen:map <LeftMouse> <nop>
möchte, den Trick machen.Das Verhalten, das Sie wollen, ist das, was auf meinem Vim passiert. Ich kann keine Einstellung finden, die das Ein- / Ausschalten ermöglicht. Vielleicht überprüfen Sie die : Hilfe beim Scrollen ?
scrolloff
könnte beteiligt sein.Sie können auch die Verwendung von Marken als Problemumgehung in Betracht ziehen .
quelle
vim -u NONE
) zu laden . Dies ist Vim 7.4 unter Ubuntu 14.04 mit GNOME..vimrc
(nurset mouse=a
).:help scrolling
gibt an, dass das Bildlaufverhalten plattformspezifisch ist. Ich verwende vim in iterm2 unter OSX.:set mouse=a
hat das problem für mich behoben. Bearbeiten Sie das in Ihre Antwort, und ich werde es akzeptieren. Vielen Dank!