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

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

我可以在哪里切换这个选项再次关闭它?


当前回答

2022年的更新

在“首选项->配置文件->终端”中

取消的

"保存行以备用屏幕模式滚动"还有 “当应用程序状态栏出现时保存滚动行”

其他回答

2022年的更新

在“首选项->配置文件->终端”中

取消的

"保存行以备用屏幕模式滚动"还有 “当应用程序状态栏出现时保存滚动行”

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

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

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

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

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

您所看到的行为是在备用屏幕时预期的(正确的)行为。唯一的问题是,在另一个屏幕上,您可能在失去连接或从已杀死的vim或更少的情况下进入bash或其他什么。例如,你在less +F /var/log/something中,并且断开了连接。

您可以看到,有人已经编写了tput rmcup命令将退出到主屏幕。

我还查阅了一些终端控制字符。它可以是:ESC [?1 0 4 9 l或ESC [?1 0 4 7 l或ESC [?47 l (gnu.org/software/screen/manual/html_node/Control-Sequences.html),优先选择第一个。

我在iTerm2中使用echo -e '\e[?我真的不觉得rmcup更容易记住,恢复控制台的内存?

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

正如另一个评论所建议的,选择Preferences菜单:

然后选择Advanced选项卡。向下滚动到鼠标部分,

并将条目切换为

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

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