Scrollen Sie mit dem Scrollrad über den Bildschirm und nicht über den Cursor


18

Ich verwende Vim in einem Terminal, daher wird beim Scrollen mit dem Scrollrad die Syntax \e[Aund verwendet \e[B(wobei \esymbolisiert \x1boder 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.


Könnten Sie die Frage auf ein Betriebssystem oder eine Windows-Umgebung beschränken?
200_success

@ 200_success Okay, ich habe meine Umgebung in die Frage bearbeitet.
Türknauf

Ich denke, diese Frage sollte auch mit 'terminal' markiert werden. Kann es nicht bearbeitet werden, weil es beantwortet wird?
bsmith89

Antworten:


12

Wie @Doorknob in seinem Kommentar sagte, :set mouse=abehebt das Problem.


1
Gibt es eine Möglichkeit, dies ohne Einstellung zu tun mouse=a? Ich möchte nicht, dass versehentliche Klicks meinen Bearbeitungsfluss durcheinander bringen.
wchargin

das ain mouse=asteht für all(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")
Fawix

2
Obwohl dieser Thread alt ist, würde jemand, der set mouse=aohne versehentliche Klicks den Fluss durcheinander bringen :map <LeftMouse> <nop>möchte, den Trick machen.
Sunny Pun

0

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 ? scrolloffkönnte beteiligt sein.

Sie können auch die Verwendung von Marken als Problemumgehung in Betracht ziehen .

  1. ma (setze die Markierung 'a')
  2. Scrollen Sie durch den Bildschirm, wie Sie möchten
  3. `a (Cursor auf 'a' setzen)

Ich bekomme dieses Verhalten auch ohne mein vimrc ( vim -u NONE) zu laden . Dies ist Vim 7.4 unter Ubuntu 14.04 mit GNOME.
Türknauf

@Doorknob Und ich bekomme das Fenster anstatt den Cursor zu bewegen, ohne mein .vimrc(nur set mouse=a). :help scrollinggibt an, dass das Bildlaufverhalten plattformspezifisch ist. Ich verwende vim in iterm2 unter OSX.
bsmith89

Aha! :set mouse=ahat das problem für mich behoben. Bearbeiten Sie das in Ihre Antwort, und ich werde es akzeptieren. Vielen Dank!
Türknauf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.