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

Phi*_*ppe 4 ssh terminal keyboard cygwin

我在 cygwin 环境的薄荷窗口中。

当我输入⎈ Ctrl+ Vthen键时,我得到了:^[[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
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解吗?

Tho*_*key 7

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

smkx=\E[?1h\E=

这是两个设置:

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

tput rmkx
Run Code Online (Sandbox Code Playgroud)

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