当我在没有 tmux 的情况下运行 shell(在 Gnome 终端中)时,鼠标滚动在tmux 中不起作用。似乎 tmux 发送鼠标滚动事件就像我按下向上/向下键一样。但我希望它通过 shell输出历史滚动。有没有办法让 tmux 像这样工作?
注意:我知道如何使用键盘滚动(感谢这里的另一个问题)。
我尝试在两个版本的 tmux 中进行鼠标滚动:
我知道如何使用键盘在 tmux 中滚动,但我注意到似乎有一种方法可以将终端滚动条与 GNU Screen 一起使用。这可以用 tmux 完成吗?
我希望能够使用与 xterm 相同的键绑定向上/向下滚动到给定的窗格,即 SHIFT + Page Up/Down。
例如,如果 tmux 窗口分为 2 个垂直窗格,我可以使用键盘在两个窗格中的一个上滚动,而另一个不滚动。
是否可以 ?
这是我的 tmux.conf :
set -g status off
set -g prefix C-o
unbind C-b
bind C-o send-prefix
# settings -------------------------------------------------------------
setw -g utf8 on
setw -g xterm-keys on
set -g default-terminal "screen-256color"
set-option -g set-titles on
set-option -g set-titles-string '[#S:#I #H] #W'
# auto-set window title
setw -g automatic-rename
setw -g aggressive-resize on
# vim keybinds
set-option -g status-keys vi
set-window-option -g mode-keys vi
# scroll inside …Run Code Online (Sandbox Code Playgroud) 我希望能够映射 emacs 键(如C-v/ M-v)以在 tmux 中滚动而不是默认PgUp/ PgDown,这可能吗?目前无法从手册中看到这一点(如果有的话,抱歉,考虑到 tmux 使用的其他类似 emacs 的导航键绑定,这似乎是一件很自然的事情)
我注意到在 tmux 中滚动很麻烦,我想知道是否可以让 tmux 将它们传递给应用程序或终端。
我可能在这里理解错误,但我观察到我可以在术语(我的终端模拟器)中滚动手册页,但在 tmux 运行时不能滚动。即使 tmux 未运行,手册页中的鼠标滚动在 xterm 中也不起作用,这让我认为终端处理鼠标事件,然后将它们发送到应用程序。
所以我目前对鼠标事件流程的理解是这样的:
terminal -> tmux
Run Code Online (Sandbox Code Playgroud)
所以问题似乎是 tmux 阻止了事件到达底层应用程序。想要的是这个:
terminal -> tmux -> application
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会将 Terminology 的本机滚动与 tmux 的复制模式(假设鼠标模式已启用并且它自动进入和退出复制模式)相结合,但似乎不可能,因为 tmux 可以自行处理滚动。
这和我来的时候一样接近我想要的。鼠标滚动工作并自动进入和退出复制模式,但在应用程序中,man它会滚动出应用程序到旧的终端历史记录。该解决方案还包括一个非官方补丁,这使得可移植性成为一个问题。
那么是否有可能让 tmux 完全忽略鼠标信号并将它们发送到底层终端或应用程序?