PuTTY 发送 ALT + DEL 的序列是什么

PuTTY 发送 ALT + DEL 的序列是什么

当我在 Windows 7 上使用 PuTTY 0.62 连接到 Debian Wheezy Beta 4 服务器时,我遇到了一个问题。我的登录 shell 是 Zsh,它配置为处理ALT+DEL操作delete-word(删除光标右侧的一个单词)。配置中的行如下所示:

bindkey -e "\e[3;3~" kill-word

ssh当通过a 中的命令连接时,绑定工作得很好gnome-terminal。但是当我通过 PuTTY 连接时,不会执行此操作。相反, a[3~被输出到控制台。据我所知,这是DEL中键的未转义序列xterm。有一段时间我以为 PuTTY 会简单地忽略ALT修饰符并仅发送DEL,但如果是这样的话,绑定到 的操作DEL就会像我只按下该键一样被执行。

所以我猜 PuTTY 正在使用一些我不知道的组合键序列,这使得输出[3~出现在屏幕上。我如何找出 PuTTY 发送的哪个序列来配置 Zsh 以正确处理该问题?

更新:似乎 PuTTYALT在其当前实现中应该忽略所有修饰键击键。以下是从源代码文件中摘录的TERMINAL.C,它ALT从修饰符变量中删除了该标志:

/*
 * Alt is only used for Alt+keypad, which isn't supported yet, so
 * ignore it.
 */
modifiers &= ~PKM_ALT;

这并没有向我解释为什么按ALT+DEL不会产生与按 相同的效果。此外,它也没有解释为什么Zsh 中操作DEL的默认组合键( + ) 可以正常工作。kill-wordALTD

答案1

获取这些序列的一个简单技巧是cat在远程主机上启动。这样我就可以单独获得^[[3~DEL^[^[[3~使用ALT+ DEL。(W7/64 上的 PuTTY 0.62)

因此,可能

bindkey -e "\e\e[3~" kill-word

会做你想做的事。

相关内容