使用 Tmux 和 iTerm 在 Mac 上滚动

Jim*_*Jim 24 iterm tmux macos

我在 OS X Yosemite 上使用 iTerm 2.1.4 和 Tmux。我希望能够上下滚动 iTerm 窗口,但我不确定是什么控件滚动。当我将 tmux 与 iTerm 一起使用时,它是控制滚动还是 iTerm 仍然控制滚动?

我已经尝试使用应该滚动 iTerm 的各种键,但我得到的只是命令行上的“~~~~~”字符。如何使用此设置滚动?

not*_*erg 39

Tmux 滚动与仅使用鼠标滚轮或触控板滚动略有不同。

在 tmux 中,滚动是通过首先发送 'prefix-[' 来完成的。您会在终端窗口的右上角看到一个黄色的小框。

在此模式下,您可以使用箭头键、PageUp、PageDown、Ctrl-U、Ctrl-D、hjkl(vi 模式)或其他可配置的移动键在缓冲区中向前或向后滚动。

在相对较新的 tmux 版本中,有一个选项允许您在滚动模式下使用鼠标。

将此添加到您的 .tmux.conf

set-option -g mouse on
Run Code Online (Sandbox Code Playgroud)

此外,如果内存可用,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
Run Code Online (Sandbox Code Playgroud)

下面链接的文章中有更多有用的选项。

https://ryanfb.github.io/etc/2015/10/19/tmux_mouse_mode_on_el_capitan.html

  • 此答案底部共享的链接非常好,但现在有点过时了。为了实现您的目标,您还需要阅读以下内容:https://github.com/tmux/tmux/issues/754#issuecomment-297452143 (4认同)

Xin*_*Liu 5

这几天遇到这个问题。环境:

MacOS 大苏尔 11.4

iTerm2 版本 3.4.8

已尝试 set-option -g mouse on 且仅在模式下有效ctrl + b + [

鼠标滚动在正常模式下仍然显示历史消息。

最后我发现只有在没有 tmux 分割窗口的情况下按 Opt + 鼠标滚动才有效。