我在 OS X Yosemite 上使用 iTerm 2.1.4 和 Tmux。我希望能够上下滚动我的 iTerm 窗口,但我不确定是什么控制滚动。当我将 tmux 与 iTerm 一起使用时,tmux 会控制滚动吗?还是 iTerm 仍控制滚动?
我尝试使用各种用于滚动 iTerm 的键,但在命令行上得到的只是“~~~~~”字符。如何使用此设置进行滚动?
答案1
Tmux 滚动与使用鼠标滚轮或触控板滚动略有不同。
在 tmux 中,滚动是通过首先发送“前缀 [”来完成的。您会在终端窗口的右上角看到一个小黄色框。
在这种模式下,您可以使用箭头键、PageUp、PageDown、Ctrl-U、Ctrl-D、hjkl(vi 模式)或其他可配置的移动键在缓冲区中向前或向后滚动。
在 tmux 的较新版本中有一个选项,允许您在滚动模式下使用鼠标。
将其添加到你的 .tmux.conf
set-option -g mouse on
此外,如果我没记错的话,tmux 是“内置于”iTerm 中的,因此多路复用等功能也是内置的。你有什么理由想在 iTerm 中使用 tmux 吗?内置的 OSX 终端肯定会通过 tmux 这样的多路复用器得到增强,但 iTerm 试图通过成为独立解决方案来弥补这些缺点。
编辑 1:升级到 El Capitan 后,我注意到使用 Terminal.app 和 tmux 时出现了一些不熟悉的行为。这让我找到了一篇很棒的文章,详细介绍了我不知道的选项,这些选项似乎比我希望的更全面地回答了你的问题。据我所知,所有选项都是 tmux 特定的,并且与 OSX 版本无关,因此在 Yosemite 中使用它们应该没问题。您的滚动问题在这里得到解决,选项如下:
bind-key -t vi-copy WheelUpPane scroll-up
bind-key -t vi-copy WheelDownPane scroll-down
下面链接的文章中还有更多有用的选项。
https://ryanfb.github.io/etc/2015/10/19/tmux_mouse_mode_on_el_capitan.html
答案2
这几天遇到了这个问题。环境:
MacOS Big Sur 11.4
iTerm2 版本 3.4.8
已尝试
set-option -g mouse on
,仅在ctrl + b + [
模式下有效。
正常模式下鼠标滚动仍然显示历史消息。
最后我发现只有在没有 tmux 分割窗口时按 Opt + 鼠标滚动才有效。
答案3
我找到了以下方法来解决这个问题(macOS Mojave):
启用 tmux 滚动模式,然后按向上箭头键;iTerm 会提示您设置上述滚动首选项。但如果您错过/忽略了此提示,我想您不会再收到提示。
转到 iTerm 设置 -> “高级” -> “滚轮在交替屏幕模式下发送箭头键” -> 设置为“是”。