我如何关闭“滚动历史记录”;在iTerm2

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

我无意中同意了。现在,当我在iTerm中使用鼠标滚轮时,它不再向上滚动,而是触发命令历史记录。比如我按向上光标。

我找不到正确的设置来关闭它。 有人知道我可以在哪里切换这个选项吗?< / p >

谢谢你的帮助!

110341 次浏览

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

包括iTerm2在内的一些终端有一个特性,当一个全屏程序(如viscreentmux)正在运行时,它们会改变滚轮鼠标的行为。当这些程序使用替代屏幕来提供一个有用的函数时,就会发生这种情况。通常,在使用iTerm2中的备用屏幕时,滚轮鼠标就像滚动条一样,向上/向下滚动整个屏幕。但是当启用该特性时,iTerm2会发送光标向上/向下键,从而更改命令历史记录。

正如另一个注释中所建议的,选择首选项菜单:

enter image description here

在其中,选择先进的选项卡。向下滚动到鼠标部分,

enter image description here

并将条目切换为

滚动轮发送箭头键时,在备用屏幕模式

是的没有。您必须重新启动iTerm2才能使更改生效。(对于iTerm2 v3.1.5,更改无需重新启动即可生效。)

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

如果你被困在滚动历史模式,你可以通过运行vi并退出。退出。你也可以选择另一个使用备用屏幕的程序,然后退出。

用鼠标滚轮滚动历史在理论上应该不会发生。这种情况在实践中会发生,因为有时备用屏幕模式没有正确地切换回来。接受的答案通过取消一个有用的功能来解决问题,即在vi中滚动,less,…用鼠标滚轮或触控板。您可以在高级首选项中保留该选项:

滚动轮发送箭头键时,在备用屏幕模式

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

你可能只需要离开备用主机。

试题:tput rmcup

您所看到的行为是在备用屏幕时预期的(正确的)行为。唯一的问题是,在另一个屏幕上,您可能在失去连接或从已杀死的vim或更少的情况下进入bash或其他什么。例如,你在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中,你也可以按住Option,同时使用滚轮强制滚动窗口,以防你想让滚轮在vim中继续工作。

如果您使用的是最新版本的MacOS(我的版本是Monterey 12.0.1),并且没有看到“鼠标”;选项,您可以通过"终端>偏好→概要文件→键盘tab"然后取消选中“滚动备用屏幕”复选框;如下图红框所示:

enter image description here