如何在 iTerm2 中关闭 "scrolling the history"

How can I turn off "scrolling the history" in iTerm2

我已经安装了新的 iTerm 2。 如果我想启用鼠标功能,它会在顶部的黄色栏中询问我。不幸的是我不记得确切的句子了。

一不小心,我批准了。现在,当我在 iTerm 中使用鼠标上的滚轮时,它不再向上滚动,而是触发命令历史记录。就像我按下向上光标一样。

我找不到正确的设置来再次关闭它。 有谁知道我可以在哪里切换这个选项?

感谢您的帮助!

首选项:高级:鼠标:滚轮在交替模式下发送方向键

包括 iTerm2 在内的一些终端具有一项功能,当全屏程序(例如 viscreentmux 时,它们会更改滚轮鼠标的行为是 运行。当这些程序使用 备用屏幕 来提供有用的功能时,就会发生这种情况。通常情况下,在iTerm2中使用备用屏幕时,滚轮鼠标就像滚动条一样,滚动整个屏幕up/down。但是启用此功能后,iTerm2 会发送光标 up/down 键,使您的命令历史发生变化。

根据另一条评论的建议,select 首选项 菜单:

其中,select 高级 选项卡。向下滚动到 鼠标 部分,

并切换

的条目

在交替屏幕模式下滚轮发送方向键

。您必须重新启动 iTerm2 才能使更改生效。 (使用 iTerm2 v3.1.5 更改无需重启即可生效。)

我遇到了同样的问题,并且 none 我阅读并尝试过的解决方案有效。解决我的问题的是关闭安全键盘输入,现在当我在 macOS 10.13 上使用鼠标在 ssh 和终端模式下滚动它时,它也像我期望的那样工作!

如果你陷入了滚动历史模式,你可以通过运行vi退出,直接退出。你也可以选择另一个使用备用屏幕的程序直接退出

理论上,用鼠标滚轮滚动历史应该永远不会发生。它在实践中发生,因为有时备用屏幕模式没有正确切换回来。接受的答案通过停用有用的功能来解决问题,即使用鼠标滚轮或触控板在 vi 中滚动,更少,...。您可以保留高级首选项中的选项:

Scroll wheel sends arrow keys when in alternate screen mode

设置为是。您有时会陷入滚动历史记录模式。但是如果你知道如何逃脱,这不是问题。

您可能只需要离开备用控制台。

尝试:tput rmcup

您看到的行为是在备用屏幕中的预期(正确)行为。您遇到的唯一问题是您掉入了备用屏幕上的 bash 或其他任何内容,可能是在失去连接时或被杀死的 vim 或更少。 EG 你在 less +F /var/log/something 并且掉线了。

你看有人已经写了 tput rmcup 命令将退出到主屏幕。

我也继续查找一些终端控制字符。它可以是以下任何一个:ESC [ ? 1 0 4 9 lESC [ ? 1 0 4 7 lESC [ ? 47 l (gnu.org/software/screen/manual/html_node/Control-Sequences.html) 优先选择第一个。

我在 iTerm2 中通常是成功的 echo -e '\e[?1049l' 我实际上没有发现 rmcup 更容易记住,恢复控制台的记忆?

使用 iTerm2,您还可以在使用滚轮强制 window 滚动时按住 Option,以防您希望滚轮在 vim 中继续工作。

如果您使用的是较新版本的 MacOS(我的是 Monterey 12.0.1)并且在首选项下没有看到“鼠标”选项,您可以通过转到“终端 -> 首选项 - > 配置文件 -> 键盘选项卡”,然后取消选中“滚动备用屏幕”框,如下图红框所示: