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

Gam*_*mbo 241 terminal iterm2

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

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

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

感谢帮忙!

Tho*_*key 422

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

如另一条评论所示,选择" 首选项"菜单:

在此输入图像描述

然后,选择" 高级"选项卡.向下滚动到鼠标部分,

在此输入图像描述

并切换条目

处于备用屏幕模式时,滚轮会发送箭头键

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

  • //,我喜欢这个功能,并在Vim中使用它.如何在给定的终端窗口中_exit_备用屏幕模式?更新:在处于备用屏幕模式的终端中,打开激活备用屏幕模式的终端程序.干净地退出该程序.这暂时结束了这个问题.我认为这表明问题是由于以不寻常的方式退出使用备用屏幕功能的程序引起的. (19认同)
  • 先生,你让我免于纯粹的疯狂. (6认同)
  • 我在写评论之前测试了它 - 只是切换选项是不够的. (2认同)
  • 不需要重新启动3.0.12即可生效。 (2认同)
  • @NathanBasanese正确答案如下,`tput rmcup` (2认同)
  • 默认情况下启用这是一种非常恼人的行为。把我吓坏了 (2认同)
  • 这一定是任何星球上任何软件中实现的最糟糕的单一功能。 (2认同)

Ort*_*kni 44

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

理论上从未发生过用鼠标滚轮滚动历史记录.它在实践中发生,因为有时候交替屏幕模式没有正确切换回来.接受的答案通过停用有用的功能来解决问题,即使用鼠标滚轮或触控板在vi,less,...中滚动.您可以保留高级首选项中的选项:

处于备用屏幕模式时,滚轮会发送箭头键

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

  • 感谢您的建议!这帮助了我:) (2认同)
  • 这很有帮助。滚动突然在命令行中添加了`[[A^` 和`[[B^`,而不是滚动窗口。我知道这不是正常行为。在此之前,我将计算机留在 SSH shell 中的 `nano` 中,当我关闭笔记本电脑时,它断开了连接。那个突然的退出显然是罪魁祸首。只需在 iTerm2 中打开一个新标签即可解决此问题。 (2认同)

otr*_*jni 30

你可能只需要退出备用控制台.

尝试: tput rmcup

  • 很好的答案A+ (2认同)
  • 任何人都可以对此答案添加解释,什么是 tput 和 rmcup?我的意思是细节,显然最终结果是它停止了备用控制台模式。 (2认同)

Idi*_*iot 9

首选项:高级:鼠标:滚动轮在交替模式下发送箭头键

  • 我有同样的问题描述,但在最新的iTerm鼠标不在Prefences:Advanced.只需触发器,智能选择和语义历史记录.任何人都知道其他任何解决方法吗? (2认同)

Kyl*_*ith 6

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

  • 这可行,但是当我不必按住选项键时如何返回默认值 (2认同)

dla*_*lin 5

您在备用屏幕中看到的行为是预期的(和正确的)行为。您遇到的唯一问题是您在备用屏幕上掉入 bash 或其他任何东西,可能是在失去连接或从被杀死的 vim 或更少的情况下。EG 你进去less +F /var/log/something了却断线了。

您会看到有人已经写过该tput rmcup命令将退出到主屏幕。

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

我在 iTerm2 中通常是成功的,echo -e '\e[?1049l'实际上我没有找到rmcup任何更容易记住的方法,恢复控制台的内存吗?。