使用 Tmux 和 iTerm 在 Mac 上滚动

使用 Tmux 和 iTerm 在 Mac 上滚动

我在 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 设置 -> “高级” -> “滚轮在交替屏幕模式下发送箭头键” -> 设置为“是”。

相关内容