使用 tmux 的终端滚动条

使用 tmux 的终端滚动条

我知道如何使用键盘在 tmux 中滚动,但我注意到似乎有一种方法可以使用带有 GNU Screen 的终端滚动条。这可以用 tmux 完成吗?

答案1

这在 GNU screen 和 tmux 中都是可行的,解决方法也类似:欺骗多路复用器,使其认为终端没有“备用屏幕”模式(例如 pico、mutt 等使用的模式)。这可以通过为会话设置 termcap 命令来实现。

对于 GNU screen,请将其放入.screenrc

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

对于 tmux,将其添加到您的.tmux.conf

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

命令的“ xterm*”部分应设置为您的终端仿真器声明的任何内容。某种形式的 xterm 是一个不错的选择,但您可以在大多数正常的 *nix 系统上使用以下命令检查您的终端仿真器:

echo $TERM

这通常可以在您的终端程序的偏好设置中进行设置(例如:对于 Apple 来说Terminal.app,它位于“设置”->“配置文件”->“高级”(或“设置”->“高级”->“Yosemite 之前的模拟”)“将终端声明为”中。

最终结果是溢出最终出现在终端的回滚缓冲区中,而不是消失。当然,由于这是一个静态缓冲区,当您在屏幕或 tmux 窗口之间切换时,事情会变得混乱,但这对于快速向上滑动以查看命令的输出ls或类似内容非常方便。

答案2

要启用滚动,您可以启用内置鼠标模式在您的~/.tmux.conf如下:

set -g mode-mouse on

答案3

我的环境

linux fedora 29 x86_64 工作站,GNU bash,版本 4.4.23(1)-release (x86_64-redhat-linux-gnu),GNOME 终端 3.30.3

去做

  1. 查看 tmux 的版本。
$ tmux -V
tmux 2.9a
  1. 编辑~/.tmux.conf

set -g mouse on

  1. 终止服务器

$ tmux kill-server

  1. 重新运行 tmux

然后它会在每个 tmux 面板中显示终端滚动条。

但是如果您想将文本粘贴到面板,您应该使用ctrl shift v

或者看看这个如何使用 tmux 通过鼠标进行复制和粘贴

以上答案没有给出步骤3和4。我可能会对其他人有帮助。

相关内容