在gnu screen会话中使用less时,箭头键停止工作

10
有时候我在 screen 标签下使用 less 命令时,箭头键会显示成 ^[OA^[OB^[OC^[OD 而不是我想要的操作。有什么方法可以修复这个问题并重新控制 less

对于cmder和conemu,解决方案是添加“-new_console:p5”。来源:https://github.com/cmderdev/cmder/issues/1832#issuecomment-649055755 - 更多讨论请参见https://github.com/Maximus5/ConEmu/issues/1622 - koppor
4个回答

9

在less提示符下输入!reset


4
我发现,在screen内部使用reset有时无法解决问题,因为实际上是外部的客户端/ shell状态混乱,而screen会捕获reset中的控制字符并阻止它们到达外部客户端。在这种情况下,我必须分离我的会话(Ctrl + a,d),运行reset,然后重新附加到会话(screen -r)。

2

还有一件需要检查的事情是您的TERM变量。在我的情况下,我通过ssh连接到一个Linux机器,并在screen内运行less命令 - TERM变量被设置为“screen” - 这会导致箭头键无法正常工作。如果我以这种方式运行less,则它可以完美地工作:

TERM=xterm less <file>

2
  • 如果偶尔发生应用程序(如catless一个二进制文件)通过发送控制字符来破坏您的控制台,您需要在命令行中运行reset命令进行恢复。
  • 否则,您需要欺骗您的终端应用程序。我建议您使用CryptoTerm,它允许您定义自定义键映射。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接