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

Posted

技术标签:

【中文标题】如何在 iTerm2 中关闭“滚动历史”【英文标题】:How can I turn off "scrolling the history" in iTerm2 【发布时间】:2016-08-04 07:32:30 【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

我假设您使用的是iTerm2.9,您看到的消息是“您希望滚轮在这样的交互式程序中移动光标吗?”。但是我找不到界面切换它,你还有问题吗? 是的,但仅当我通过 ssh 登录到服务器时。我不知道如何连接。 “只有当我通过ssh登录服务器时”,你的意思是当你使用iTerm2进行本地操作时,不会出现这种情况?当“通过 ssh 登录服务器”时,您是否使用不同的“配置文件”? 这对我来说刚刚开始随机发生......当您尝试查看日志时令人沮丧 这是一种终端仿真模式(备用屏幕),由遥控器设置到您的终端,然后如果您退出设置它的程序(如 less、vim 或其他),它会保持打开状态并且不会重新设置意外(例如断开 ssh)。命令reset 将断言再次为您的终端设置初始条件。我知道它有一个可怕的名字,请随时阅读手册页。同样,tput rmcup 如果您确定它已打开,则将其关闭。可能有一种方法可以要求显示状态,但终端会变得复杂。 【参考方案1】:

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

按照另一条评论中的建议,选择首选项菜单:

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

并切换条目

滚轮在交替屏幕模式下发送箭头键

。您必须重新启动 iTerm2 才能使更改生效。 (使用 iTerm2 v3.1.5 更改无需重启即可生效。)

【讨论】:

我在写评论之前测试了它——仅仅切换选项是不够的。 3.0.12不需要重启才能生效。 // ,我喜欢这个功能,并在 Vim 中使用它。如何在给定的终端窗口中退出交替屏幕模式?更新:在处于备用屏幕模式的终端中,打开一个激活备用屏幕模式的终端程序。干净地退出该程序。这暂时结束了问题。我认为这表明问题是由以不寻常方式退出使用备用屏幕功能的程序引起的。 先生,你把我从纯粹的精神错乱中救了出来。 这是一个非常严重的行为,默认启用。吓到我了【参考方案2】:

如果你陷入滚动历史模式的陷阱,你可以运行vi直接退出。你也可以选择另一个使用备用屏幕的程序直接退出。

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

在交替屏幕模式下滚轮发送箭头键

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

【讨论】:

感谢您的建议!这帮助了我:) 谢谢你!但是出于某种原因,进入和退出 vi 在我的情况下没有帮助,但是在进入手册页并按 q 退出它后它起作用了 q 这很有帮助。滚动突然将[[A^[[B^ 添加到命令行而不是滚动窗口。我知道这不是正常行为。在此之前,我将计算机留在nano 的 SSH shell 中,当我关闭笔记本电脑时,该 shell 断开连接。那个突然的退出显然是罪魁祸首。只需在 iTerm2 中打开一个新选项卡即可解决此问题。 不幸的是,当使用screen 时,您无法使用此技巧退出备用屏幕模式。因此,如果您经常使用screen(像我一样),完全禁用该功能可以挽救生命。 我更喜欢这个答案,因为使用触控板在全屏应用程序中导航非常有用,因此禁用首选项中的功能对我来说不是一个好的选择 :) 感谢分享这个提示 :) 【参考方案3】:

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

试试:tput rmcup

【讨论】:

好答案 A+ ? 更好的答案 - 这使您可以滚动历史记录,同时仍然可以在 vim 中滚动。谢谢!【参考方案4】:

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

【讨论】:

这行得通,但是当我不必按住选项键时,如何返回到 detaults【参考方案5】:

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

【讨论】:

我遇到了同样的问题,但在最新的 iTerm 中,鼠标不在 Preferences:Advanced 下。只是触发器、智能选择和语义历史。有谁知道解决这个问题的其他方法吗?【参考方案6】:

您看到的行为是在备用屏幕中的预期(和正确)行为。您遇到的唯一问题是您在备用屏幕上掉入了 bash 或其他任何东西,可能是在失去连接或被杀死的 vim 或更少的情况下。例如,您在 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 更容易记住,恢复控制台的内存?。

【讨论】:

【参考方案7】:

我遇到了同样的问题,我阅读和尝试的解决方案都没有奏效。解决我的问题是关闭安全键盘输入,现在当我在 macOS 10.13 上使用鼠标在 ssh 和终端模式下滚动它时,它的工作方式也符合我的预期!

【讨论】:

以上是关于如何在 iTerm2 中关闭“滚动历史”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中关闭 ViewController?

如何在 DidSelectRow 中关闭 UIPopover?

如何在android中关闭AlertDialog

如何在导航控件片段中关闭导航 DrawerLayout onBackPressed

你如何在android studio中关闭版本控制?

如何在android中关闭数据连接?