为什么 Esc、Ctrl、Shift 和 Alt 等键在我的 Windows PC 的 SSH 会话中不起作用?

为什么 Esc、Ctrl、Shift 和 Alt 等键在我的 Windows PC 的 SSH 会话中不起作用?

我在 Windows PC 上工作。如果我打开 Linux (CentOS) 机器的终端(使用 PuTTY 或 SSH),我无法让EscCtrlShift等键Alt起作用。

我需要它们来使用 Midnight Commander(目前对我Ctrl+Ins来说Shift+Ins不起作用)。 能否让这些密钥发挥作用?

答案1

PuttyUnix模拟通过串行 ( RS232c) 连接连接到机器的终端。查看这里用于配置选项。典型的终端类型包括vt100、、、。vt200xtermansi

为了获得正确的操作,您的Unix环境变量TERM必须与正在模拟的终端类型相匹配(参见Putty配置Connection/Data/Terminal-type)。我正在使用xterm,也用于文本模式控制台窗口。

使用echo $TERMas 命令查找当前值。

Esc是终端控制序列的第一个字符。因此,它通常不应用作独立字符。CtrlShift并且Alt它们本身不会触发任何字符发送到您的Unix机器。您可以使用Putty配置菜单Terminal/Keyboard来影响某些键的翻译方式。

答案2

尽管PuTTY将TERM变量设置为xterm,其行为实际上与 xterm 的行为不匹配。问题中提到了两个特性:

  • Escape作为一个字首特殊键返回的终端作为替代键(参见讨论eightBitInput在手册中)。
  • 其他键(ControlShiftAlt)通常用作 *修饰键。也就是说,它们通常不会自行发送字符,而是修改同时按下的键的行为。

ncurses 常见问题如何使用 shift 或 control 修饰键?介绍了修改密钥的一些背景。PuTTY 不实现任何的。它修改由 Shift 光标键发送的控制序列,在普通的应用模式(参见 xterm FAQ为什么我不能在(任何)shell 中使用光标键?对这些术语进行一些讨论)。

ncurses 对默认配置有准确的终端描述油灰(可以创建几个描述来对应其键盘对话框设置,但在实践中,这些描述很少被提及,可能也很少使用)。具有完整终端数据库的系统将具有putty终端描述。

与其他终端仿真器一样TERMxterm,完整的终端描述与有很多不同之处xterm。ncurses FAQ为什么不直接将 TERM 设置为“xterm”?对该方面进行了概述。

提到远程控制提示,你可能正在使用minttyCygwin。这是PuTTY,具有大致相同的局限性。

答案3

答案是你不能,因为这是 PuTTY 中的一个错误。

猫咪它是 PuTTY 的分支,并且已经实现了适当的Ctrl/Shift支持,您可能需要查看它。

来源:https://superuser.com/a/1226621/360137

顺便提一下 - 默认情况下,KiTTY 具有Ctrl+Up/Down透明度控制热键,因此您可能希望通过将其设置为会话的默认值来完全禁用Window->Transparency透明度-1

答案4

作为 putty4far2l putty fork 的作者,我建议您尝试 «far2l+putty4far2l» 提供与“mc + putty”类似的用户体验,但具有完整的键盘支持。这可通过所谓的“far2l 终端扩展”实现。如果您在 putty4far2l 中的 far2l 内运行 mc,则 mc 中也将提供完整的键盘支持。

PS: far2l 的 ppa 是这里,putty4far2l 的二进制文件可直接在 github 上获取

相关内容