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


289

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

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

我找不到正确的设置来再次将其关闭。有人知道我可以在哪里切换此选项吗?

感谢帮助!


3
我假设您使用的是iTerm2.9,并且看到的消息是“您是否希望滚轮在这样的交互式程序中移动光标?”。但是,我找不到用于切换它的界面,问题?
sel-fish

1
是的,但是仅当我通过ssh登录到服务器时。我不知道如何连接。
甘博

“仅当我通过ssh登录到服务器时”,您的意思是当您将iTerm2用于本地操作时,那不会发生吗?“通过ssh登录到服务器”时,您是否使用其他“配置文件”?
sel-fish

必须发送一个终端控制字符以打开和关闭备用屏幕。我认为最好是长期学习(不特定于iTerm2或vim或更短),以了解控制字符是什么。这可能是ESC [ ? 1 0 4 9 lESC [ ? 1 0 4 7 lESC [ ? 47 lgnu.org/software/screen/manual/html_node/Control-Sequences.html
dlamblin

2
这对我来说只是随机发生的..当您尝试查看日志时感到沮丧
SgtPooki

Answers:


493

一些终端,包括iTerm2,有一个特点,他们全屏幕程序,例如当改变滚轮鼠标的行为vi,或screentmux正在运行。当这些程序使用备用屏幕来提供有用的功能时,就会发生这种情况。通常,在iTerm2中使用备用屏幕时,滚轮鼠标的作用类似于滚动条,向上/向下滚动整个屏幕。但是,启用此功能后,iTerm2将发送上/下光标键,从而更改命令历史记录。

根据另一条注释中的建议,选择“ 首选项”菜单:

在此处输入图片说明

然后选择“ 高级”选项卡。向下滚动到“ 鼠标”部分,

在此处输入图片说明

并切换以下条目

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

。您必须重新启动iTerm2才能使更改生效。(对于iTerm2 v3.1.5,更改将在不重新启动的情况下生效。)


2
我在写评论之前进行了测试-仅切换选项是不够的。
Thomas Dickey

可能取决于版本。在3.0.2中,切换绝对足够。实际上,如果您处于备用屏幕模式并且此设置为关闭状态,并且尝试(失败)使用鼠标滚动,然后按向上或向下箭头键,则会提示您在终端窗口。
乔治

3
不需要重新启动3.0.12即可生效。
dhempler '16

21
//,我喜欢这个功能,并在Vim中使用它。如何在给定的终端窗口中退出备用屏幕模式?更新:在处于备用屏幕模式的终端中,打开一个激活备用屏幕模式的终端程序。干净地退出该程序。这暂时解决了问题。我认为这表明问题是由退出使用异常屏幕功能的程序引起的。
内森·巴萨内斯

6
先生,您使我免于精神错乱。
BK

60

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

从理论上讲,用鼠标滚轮滚动历史记录永远不会发生。实际上发生这种情况是因为有时无法正确切换回交替屏幕模式。接受的答案通过停用有用的功能来解决该问题,即使用鼠标滚轮或触控板滚动vi,更少,...。您可以保留高级首选项中的选项:

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

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


2
感谢您的建议!这帮助了我:)
jj172

1
谢啦!但是由于某种原因,进入和退出vi对我的情况没有帮助,但是在进入手册页并通过按q退出它后,它起作用了
Frax

1
这很有帮助。滚动是突然加入[[A^,并[[B^在命令行,而不是滚动窗口。我知道这不是正常行为。在此之前,我将计算机留nano在SSH外壳中,当我关闭笔记本电脑时,该外壳已断开连接。突然退出显然是罪魁祸首。只需在iTerm2中打开一个新标签即可解决此问题。
科林·马歇尔

不幸的是,在使用screen时无法使用此技巧退出备用屏幕模式。因此,如果您screen像我一样使用很多东西,则完全禁用该功能可以节省生命。
mvreijn

我喜欢这个答案,因为使用触控板在全屏应用中导航非常有用,因此禁用首选项功能对我来说不是一个好选择:)感谢分享此技巧:)
Patrick Ferreira

42

您可能只需要退出备用控制台即可。

尝试: tput rmcup


1
好答案A +💯–
dps

更好的答案-这使您可以滚动历史记录,同时仍然可以在vim中滚动。谢谢!
JonLuca

10

首选项:高级:鼠标:在备用模式下,滚轮发送箭头键


2
我正在描述相同的问题,但是最新的iTerm鼠标不在Prefences:Advanced下。只是触发器,智能选择和语义历史记录。有人知道其他解决方法吗?
mikeLspohn '16

9

使用iTerm2时,如果您确实希望滚轮在vim中继续工作,也可以在使用滚轮强制滚动窗口时按住Option。


这个作品,但我怎么回去detaults,当时我并没有按住Option键
meso_2600

2

在备用屏幕中,您看到的行为是预期的(和正确的)行为。唯一的问题是,您掉入了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更容易记住的东西,还可以恢复控制台的内存吗?


1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.