我无意中同意了。现在,当我在iTerm中使用鼠标滚轮时,它不再向上滚动,而是触发命令历史记录。比如我按向上光标。
我找不到正确的设置来关闭它。 有人知道我可以在哪里切换这个选项吗?< / p >
谢谢你的帮助!
首选项:高级:鼠标:在备用模式下滚轮发送方向键
包括iTerm2在内的一些终端有一个特性,当一个全屏程序(如vi、screen或tmux)正在运行时,它们会改变滚轮鼠标的行为。当这些程序使用替代屏幕来提供一个有用的函数时,就会发生这种情况。通常,在使用iTerm2中的备用屏幕时,滚轮鼠标就像滚动条一样,向上/向下滚动整个屏幕。但是当启用该特性时,iTerm2会发送光标向上/向下键,从而更改命令历史记录。
vi
screen
tmux
正如另一个注释中所建议的,选择首选项菜单:
在其中,选择先进的选项卡。向下滚动到鼠标部分,
并将条目切换为
滚动轮发送箭头键时,在备用屏幕模式
从是的到没有。您必须重新启动iTerm2才能使更改生效。(对于iTerm2 v3.1.5,更改无需重新启动即可生效。)
我也有同样的问题,但我读过和尝试过的解决方案都不起作用。解决我的问题的是关闭安全键盘输入,现在当我在macOS 10.13上使用鼠标在ssh和终端模式下滚动它时,它也像我期望的那样工作!
如果你被困在滚动历史模式,你可以通过运行vi并退出。退出。你也可以选择另一个使用备用屏幕的程序,然后退出。
用鼠标滚轮滚动历史在理论上应该不会发生。这种情况在实践中会发生,因为有时备用屏幕模式没有正确地切换回来。接受的答案通过取消一个有用的功能来解决问题,即在vi中滚动,less,…用鼠标滚轮或触控板。您可以在高级首选项中保留该选项:
设置为yes。您有时会陷入滚动历史记录模式。但如果你知道如何逃脱,那就不是问题。
你可能只需要离开备用主机。
试题:tput rmcup
tput rmcup
您所看到的行为是在备用屏幕时预期的(正确的)行为。唯一的问题是,在另一个屏幕上,您可能在失去连接或从已杀死的vim或更少的情况下进入bash或其他什么。例如,你在less +F /var/log/something并且断开连接。
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)中的任意一个,优先于第一个。
ESC [ ? 1 0 4 9 l
ESC [ ? 1 0 4 7 l
ESC [ ? 47 l
我在iTerm2中使用echo -e '\e[?1049l'通常是成功的,我实际上不觉得rmcup更容易记住,恢复控制台的内存?
echo -e '\e[?1049l'
rmcup
在iTerm2中,你也可以按住Option,同时使用滚轮强制滚动窗口,以防你想让滚轮在vim中继续工作。
如果您使用的是最新版本的MacOS(我的版本是Monterey 12.0.1),并且没有看到“鼠标”;选项,您可以通过"终端>偏好→概要文件→键盘tab"然后取消选中“滚动备用屏幕”复选框;如下图红框所示: