
Ich verwende eine Kombination aus PuTTY, tmux und vim. Wenn ich einfach eine SSH-Verbindung mit PuTTY öffne und dann vim öffne, funktioniert das Scrollen mit der Maus wie erwartet. Aber wenn ich tmux öffne und dann vim innerhalb von tmux öffne, funktioniert das Scrollen nur teilweise, d. h. ich kann wie üblich nach unten scrollen, aber nicht nach oben. Wenn ich nach oben scrolle, ruckelt der Puffer einfach „auf und ab“ und bleibt einfach an derselben Stelle. „set -g mode-mouse on“ scheint keinen Unterschied zu machen (ich lade die Konfiguration anschließend mit „tmux source-file ~/.tmux.conf“ neu), funktioniert in beiden Fällen gleich.
Bearbeiten: Mir ist auch aufgefallen, dass das Scrollen im Terminal in tmux wie erwartet funktioniert, in vim jedoch nicht. Die einzigen Optionen in Bezug auf Maus/Terminal, die ich in vim habe, sind „set mouse=a“ und „set t_Co=256“.
Irgendwelche Ideen?
Antwort1
Zusammenfassung
Das Problem beginnt eindeutig mit PuTTY, aber es endet nicht unbedingt dort. Unten finden Sie einen Link zu einer möglichen Lösung für das PuTTY-Problem sowie eine Analyse des gesamten Problems.
Fehlerbeschreibung
Aufbau
vim
mit mouse=a
aktiviertem Scrollen, Auswählen und Cursorbewegung
tmux
, ohne tmux
aktivierte Mausfunktionalität, also Folgendes:
set -g mode-mouse off
set -g mouse-select-pane off
set -g mouse-resize-pane off
set -g mouse-select-window off
Anwendungsfall
Ein typischer Anwendungsfall ist die Verwendungvim
innenvon tmux
. Die Vermeidung negativer Interaktionen zwischen tmux
und vim
ist einer der Hauptgründe für das Deaktivieren tmux
des Scrollens.
Verhalten
Bitte beachten Sie, dass das Folgende nur auftritt, wenn PuTTY als Terminalemulator verwendet wird, und nicht im Gnome-Terminal oder einem anderen getesteten Linux-Terminalemulator reproduzierbar ist.
Beim Versuch, mit der Maus nach oben zu scrollen, invim
inneneiner tmux
Sitzung schlägt die Aktion einfach fehl. Wie OP beschreibt, ist es oft möglich, den Puffer „auf und ab“ ruckeln zu sehen, als ob bei jedem Scrollversuch eine Gegenaktion stattfindet (mehr dazu weiter unten).
Dies entspricht im Wesentlichen der Beschreibung des OP, wurde aber für den Fall noch einmal zusammengefasst, dass in meiner Erklärung oder der Frage des OP etwas nicht klar ist.
Mögliche Lösung – PuTTY
Es scheint ein Problem zu geben, bei dem PuTTY bei jedem ScrollDown/ScrollUp-Ereignis ein überflüssiges ScrollDown-Ereignis sendet. Das bedeutet, dass jeder Versuch, nach oben zu scrollen, abgebrochen wird und nichts passiert. Umgekehrt wird beim Scrollen nach unten jedes Scroll-Ereignis verdoppelt. Das Verhalten lässt sich leicht validieren, indem man sich das vim
Scrollverhalten ansieht.zuerst draußenvon tmux
(wo das Scrollen richtig funktioniert) undzweite innenvon tmux
(wobei das Scrollen nach oben nicht funktioniert und ein einzelner Versuch, nach unten zu scrollen, doppelt so viel scrollt).
Laut folgendem Gmane-Threadwird das oben beschriebene Problem mit einem Patch von Putty-X (https://github.com/atsepkov/putty-X/commit/bbcedf5a85ca1ccaa27005e7f7ebeb4c8a783b88):
Link zum Gmane-Thread:http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/5498.
NOTIZ:Ich habe die obige Lösung nicht selbst validiert. Lesen Sie daher für weitere Informationen bitte den Gmane-Thread.
Zusätzliche Beobachtungen
Wo esWirklichInteressant ist, dass dies ein neues Problem ist, das mit älteren Versionen von tmux
/ nicht reproduzierbar vim
ist. Mit derselben Version von PuTTY (0.63) kann das Problem auf einem Ubuntu 13.10-System aktiv demonstriert werden, während es auf einem Ubuntu 12.04-System nicht auftritt.
Zunächst scheint das Problem auf ein Systemkonfigurationsdelta hinzuweisen (z. B. fehlender ncurses-term oder ähnliches), aber mit dieser Art von Lösung konnte kein Fix gefunden werden. Darüber hinaus stützen die zahlreichen Berichte zu diesem Problem (einschließlich dieses Threads) tendenziell die Existenz des Problems.
Aufgrund der Abhängigkeit des Problems von den Versionen der zugehörigen Software scheint das Problem nicht auf eine einzelne Anwendung beschränkt zu sein. Es kann sein, dass eine neuere Version von tmux
/ vim
etwas „behoben“ hat, das eine Regression verursacht hat. Oder es kann sein, dass eine neuere Version von tmux
/ vim
einfach das bestehende Problem in PuTTY aufgedeckt hat. In jedem Fall sind weitere Untersuchungen erforderlich, um das Problem vollständig zu beheben. Nachfolgend finden Sie einige relevante Versionsinformationen, falls diese jemandem bei seiner Untersuchung helfen können.
Versionsinformation
Ubuntu 12.04Versionsinfo ('nach oben scrollen' innerhalb vim
vontmux
Werke):
tmux
: 1,6-1vim
: 7.3.429-2
Ubuntu 13.10Versionsinfo ('nach oben scrollen' innerhalb vim
von tmux
istgebrochen):
tmux
: 1,8-4vim
: 7.4.000-1
Bemerkenswert ist auch: Der gmane-Poster berichtete, dass das Problem bei tmux
1.7 + vim
7.3 nicht beobachtet wurde. Der Poster bemerkte das Problem erstmals auch bei tmux
1.8 + vim
7.4.
Hoffentlich bietet diese Antwort zumindest jedem, der sich mit PuTTY beschäftigt (oder damit feststeckt), eine Möglichkeit, dieses Problem zu umgehen. Darüber hinaus kann hoffentlich jemand die zusätzlichen Beobachtungen oben verstehen und dazu beitragen, das Thema zu einer angemessenen Lösung zu bringen.
Antwort2
Ich habe kein Problem mit einer Ubuntu 16.04-Installation. tmux ist die standardmäßig installierte Version von apt-get. Vim ist Version 8. PuTTY ist Version 0.67
Sowohl das Scrollen als auch das Klicken funktionieren in vim, wenn es in einer tmux-Sitzung gehostet wird.
~/.tmux.conf
set-option -g mouse on
Beachten Sie, dass sich die Tmux-Optionen zur Maussteuerung gegenüber früheren Versionen geändert haben.
~/.vimrc
set mouse=a
Beachten Sie, dassdiese Antwortlegt nahe, dass ein Vim-Plugin die Ursache des Problems sein könnte.
Antwort3
Für alle, die hier landen: Dies wurde in der Vorabversion 0.64 behoben, die Sie von der offiziellen PuTTY-Website herunterladen können.
Antwort4
Nur so konnte ich das Scrollen zum Laufen bringen:
Setzen:
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
In der Datei:~/.tmux.conf