在Mac上使用Tmux和iTerm滚动


16

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

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

Answers:


31

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

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

在此模式下,您可以使用箭头键,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版本,因此在优胜美地中使用它们应该很好。您的滚动问题在此处介绍,包括以下选项:

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


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

在高山脉上对我不起作用
Ulysse BN

使用tmux在iterm2中工作,但在terminal.app中陷入混乱,例如在vim中滚动停止工作,然后复制粘贴变得怪异
Ishan Srivastava

1

我发现了以下解决方法(macOS Mojave):

  • 启用tmux滚动模式,然后按向上箭头键;iTerm提示您设置上述滚动首选项。但是,如果您错过/取消了此提示,我想不会再提示您了。

  • 转到iTerm设置->“高级”->“在备用屏幕模式下,滚轮发送箭头键”->设置为“是”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.