我知道如何使用键盘在 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
去做:
- 查看 tmux 的版本。
$ tmux -V
tmux 2.9a
- 编辑
~/.tmux.conf
set -g mouse on
- 终止服务器
$ tmux kill-server
- 重新运行 tmux
然后它会在每个 tmux 面板中显示终端滚动条。
但是如果您想将文本粘贴到面板,您应该使用ctrl shift v
。
或者看看这个如何使用 tmux 通过鼠标进行复制和粘贴
以上答案没有给出步骤3和4。我可能会对其他人有帮助。