为什么 [UP] 键生成的代码在 ssh 会话后发生变化

为什么 [UP] 键生成的代码在 ssh 会话后发生变化

我处于 cygwin 环境的薄荷窗口中。

当我输入⎈ Ctrl+V然后输入键时,我得到:^[[A

然后我通过 ssh 进入 Raspberry Pi,并立即退出。

现在我输入⎈ Ctrl+V然后键入我得到的:^[OA

~$ ^[[A
~$ ssh rasp
Last login: Tue Dec 24 12:08:16 2019 from 192.168.0.5
raspberrypi%
Connection to 192.168.0.12 closed.
~$ ^[OA

有人可以帮助我理解吗?

答案1

登录时,远程 shell 中的某些内容正在初始化您的终端(甚至可能是 ssh 命令本身,尽管这可能是一个错误)。这^[[A是正常模式和^[OA应用程序模式(参见概括XTerm 控制序列),诸如screen初始化终端以进行全屏操作的应用程序通常使用终端描述中的终端初始化功能。 mintty 有自己的终端描述,但设置TERMxterm.所以你得到了 xterm 的初始化字符串(参见xterm-基本), 大概smkx

smkx=\E[?1h\E=

这是两个设置:

如果这只是应用程序设置某些内容而不重置它的情况(使用相同的终端描述),您可以通过以下方式跟进

tput rmkx

(删除该模式)。在 screen 或 tmux 内部执行此操作会混淆 screen/tmux 程序;在其他程序中执行此操作也可能不好......

相关内容