在 Mac 终端上禁用鼠标滚动终端命令历史记录

Vic*_*Cui 17 terminal tmux

最近我开始在 Mac 上的终端内使用 tmux。但是,现在每当我在 tmux 会话中并使用鼠标向上或向下滚动时,它都会滚动我的命令历史记录而不是滚动我的终端窗格。如何禁用此功能并使鼠标滚动恢复到默认行为?

Dop*_*oti 25

运行此命令:

$ tput rmcup
Run Code Online (Sandbox Code Playgroud)

最有可能发生的情况是您在本地或远程运行使用终端“备用屏幕”模式的命令(如vim、 或top)。当它处于活动状态时,许多终端程序有助于将鼠标上的滚动操作重新映射到箭头键,因为通常滚动本地显示没有帮助。如果此应用程序异常终止,您的终端可能仍认为它处于该模式。

此命令会重置此设置,并应重新启用您的滚动能力。

我猜你在使用 iTerm?

  • 不适合我(iterm)。 (6认同)
  • 不知何故,我在 bash 中遇到了同样的问题,在 Linux 上进行诅咒开发,所以它不仅仅是 tmux 或 mac。这个命令修复了它,谢谢。 (4认同)
  • 这对我有用 macOS Catilina 通过 ssh 到 debian 服务器 (2认同)
  • 当我在 vi 中查看文档时,我的 ssh 连接中断了。这种情况发生了,并且您的解决方案有效。 (2认同)
  • 由于寻呼机不正常退出,我遇到了类似的问题。我通过打开手册页“man tput”然后关闭它来解决它。似乎打开任何其他使用备用屏幕模式的程序(man、less、vi、vim 等)然后正常关闭它是另一个潜在的解决方案。 (2认同)

Nic*_*ott 5

这样做的原因可能是当应用程序处于“光标定位模式”但不请求鼠标本身时,您的终端为鼠标滚轮发送向上和向下键,这是关闭鼠标选项的 tmux 的情况。

您也许可以将终端配置为不这样做,但不太可能。但是,大多数终端都允许您按住 Shift 或 Ctrl 或其他一些修饰键来选择或滚动,因此您可以尝试这样做。

运行 tmux 时,您会发现终端回滚不可靠,因为 tmux 对其几乎没有控制权。使用 tmux 时复制文本的推荐方式是打开 tmux 自己的鼠标支持(set -g mouse on)并使用复制模式。


小智 5

正如 @Nicholas Marriott 在评论中提到的,你的 will 中的一行可能会做你想做的事情set-option -g mouse on.tmux.conf。(确保您使用的是最新的 tmux 版本。)这设置了一个打开鼠标交互性的全局选项

当您选择该mouse选项时,tmux 还会自动复制文本,并且您将能够单击 tmux 窗格并拖动其边框。

这也可能会产生一些副作用,因此您当然可以决定是否要走这条路:

tmux 中的滚动与普通终端仿真器的滚动略有不同。例如,我不确定如何获得良好的“输入时滚动到底部”行为,但似乎如果您需要,您可以替换快速^C返回底部。(如果您向上滚动,这只会转到底部,并且不会打印另一个命令提示符。)

最大的缺点是(据我所知)您将无法在寻呼机程序中滚动。(不过,你也许可以以某种方式解决这个问题。)


从原始发布日期来看,您现在可能不需要这个问题的答案,但希望这对某人有帮助。:)