Wo immer ich „vim“ sage, ist in tmux „vim“ drin.
Aktuelles Szenario: Ich habeMaus in vimrc deaktiviert und in tmux.conf aktiviert. Mit der Maus scrollen Sie in vim. Verwenden Sie zum Scrollen die Tmux-Maus und blättern Sie so durch den Verlauf.
Fall 1
Wenn ich die Maus auch in tmux deaktiviere (vim=off, tmux=off), dann führt das Scrollen zu einer Bewegung des Cursors (Cursorpositionierung) in vim in tmux.
Fall 2
Wenn ich die Maus auch in vim aktiviere (vim=on, tmux=on), habe ich Probleme beim Kopieren, was ich nicht möchte. Meine Anforderung ist also, die Maus in vim ausgeschaltet zu lassen.
Das Ziel besteht darin, das Scrollen nur in tmux zu verwenden, während das Scrollen im Vim den Cursor bewegen soll (der quasi scrollt, wenn der Cursor den Seitenrand erreicht, was die Standardkonfiguration ist).
Meine Frage lautet: Gibt es eine Möglichkeit, das Verhalten so einzustellen, dass das Scrollen mit der Maus in Vim deaktiviert wird (damit das Standardverhalten funktioniert, d. h. Scrollen bewegt den Cursor), wenn ich Vim in tmux öffne, und zwar nur in dem Bereich, der Vim enthält, und es wieder aktiviert wird, wenn ich Vim beende.
Einfacher ausgedrückt: Wenn Sie tmux=on und vim=off beibehalten, werden die Effekte von tmux=on in vim deaktiviert und das Scrollen führt somit zur Cursorpositionierung.
Antwort1
Ich habe dieses Plugin verwendet:tmux-besserer-Mausmodusund habe diese Flagge aktiviert in .tmux.conf
:
set -g @emulate-scroll-for-no-mouse-alternate-buffer "on"
Das hat genau so funktioniert, wie ich es wollte.
Antwort2
Diese Frage ist sehr schlecht formuliert.
Es ist nicht klar, ob die Maus in vim funktionieren soll oder nicht.
In diesem Fall müssen Sie vim nur so konfigurieren, dass es aktiviert wird. In diesem Fall sendet tmux Mausereignisse im Bereich, in dem vim ausgeführt wird, an vim, anstatt sie selbst zu verarbeiten.
Wenn Sie nicht möchten, dass die Maus in vim funktioniert, reicht es aus, sie in vim auszuschalten. Das bedeutet, dass vim die Maus nicht von tmux anfordert und tmux daher keine Mausereignisse an den Bereich sendet.