PuTTY 没有发送 Esc

PuTTY 没有发送 Esc

我使用 PuTTY 从我的 Win7 x64 笔记本电脑 SSH 到我办公室的 Unix 环境。我面临的问题与这个帖子我无法向终端发送 Esc 字符。我第一次注意到它是在尝试退出插入模式时vi,但根据我在该帖子中进行的故障排除,似乎按下 Esc 键根本不起作用。

首先,让我重述一下这个问题。登录 PuTTY,打开vi一个文件,进入插入模式,如果不按 F1 键,则无法退出:q(退出帮助),然后我可以保存并退出文档。

其他问题中提到的第一个故障排除步骤是尝试以下操作:

python -c“打印ord(raw_input('char'))”

那么结果应该是 27。运行这个程序,我被告知我有一个空字符串(类似于其中一条评论,但这个用户再也不会回来)。

然后我尝试了评论中的下一个内容……但说实话,我不知道我在寻找什么。命令和我的结果如下:

#bind -p | grep -i '\\e' | less

"\e\Cg": 中止
"\eOD": 反向字符
"\e[D”: 反向字符
“\e\Ch”:向后终止单词
“\e\C-?”:向后杀死单词
"\e[1;5D":向后单词
"\e[5D”:向后单词
"\eb":向后单词
“\e”:历史结束
"\e[6~":历史结束
"\eOF":行尾
"\e[4~":行尾
"\e[8~":行尾
"\e[F": 行尾
"\eOC": 正向字符
"\e[C": 正向字符
"\e[1;5C": 正向词
"\e[5C": 正向词
"\ef":正向单词
"\eg": glob-complete-word
“\e^”:历史扩展行
"\e#": 插入注释
“\e*”:插入完成
"\e.":插入最后一个参数
"\e_": 插入最后一个参数
“\ed”:杀死单词
"\eOB": 下一个历史记录
"\e[B": 下一个历史记录
"\en": 非增量前向搜索历史记录
"\ep":非增量反向搜索历史记录
“\e=”:可能的完成
“\e?”:可能的完成
"\eOA": 先前的历史
"\e[A": 先前的历史
"\e[2~": 引用-插入
"\e\Cr": 恢复行
“\er”:恢复行
"\e ":设置标记
“\e\Ce”:shell 扩展行
"\e&": 波浪号扩展
“\et”:转置单词
"\eu": 大写单词
“\e.”:yank-last-arg
“\e_”:复制最后一个参数
“\e\Cy”:yank-nth-arg
“\ey”:美国流行音乐

使用Ctrl+V然后按下Esc没有任何反应,直到我按下Enter,然后显示^M(我相信这是我通过引用该键获得的回车符 (CR) Enter)。输入Ctrl+[会让我退出vi,所以我假设这是我正在寻找的正确字符,我只是不知道为什么我的终端似乎认为Esc没有绑定或绑定到某个随机字符。

我当前的键盘/终端功能键和键盘设置都设置为“ Esc[n~”。我尝试将它们更改为“Linux”和“Xterm R6”,但这似乎没有任何改变。

我最近不得不为另一个应用程序添加一个隧道,并将设置更改Terminal > Features > Disable application keypad mode为 true。后来我又将其恢复为 false,但这似乎也解决了我的问题。

我的假设是,在进行这些更改之后保存我的个人资料时,我意外地更改了现在已保存的其他内容,但恢复默认设置并登录我的服务器也不能解决问题。

我没有~/.vimrc,而且根据管理也没有对服务器做出任何更改,所以我想我做了一些事情。

我现在的问题是:我还可以在 PuTTY 中检查什么或尝试更改哪些内容,从而改变将密钥传递给提示符的行为?是否可以只创建一个.vimrc来强制执行此操作?我还能做些什么来使其工作?

我是这些论坛的新用户,所以如果我在布局时犯了错误,请告诉我,但任何帮助解决我的问题或帮助我指明正确方向的帮助都会很感激。

答案1

我刚刚遇到同样的问题,按Ctrl+[也会退出 Vi 中的插入模式(它是 的替代键Esc)。

为了修复此问题,我去了Terminal > Keyboard,并将 更改Function Keys and KeypadVT100+ emulation

答案2

...再次因 vi 数字键盘无法使用而感到沮丧,我将原始问题中提到的“禁用应用程序键盘模式”改回“True/checked”。这不仅让我再次可以在 vi 中使用数字键盘,而且似乎还修复了我的 Esc 问题。

我唯一能补充的是,我的机器似乎也出现了某种 Java 错误,似乎搞乱了 Windows 更新,我们的一位 IT 技术人员已经修复了这个问题。也许这两者在不知不觉中相互关联?无论如何,我要结束这个问题了。

也许我没有正确保存我的个人资料?我很确定我已经仔细检查过了,但我也很难接受这个“神奇地自行修复”的想法。

答案3

很高兴您找到了答案,它与 PuTTY 设置有关。作为替代方案,如果 Esc 键无法按预期工作,您通常可以尝试 Ctrl-[。 ][Cyber​​Pillar][: ctrl 键键盘序列提到了这一点,][Cyber​​PIllar][:元键。请记住这一点,因为这个技巧有时非常有用,特别是如果您经常在远程 Unix 程序(如您提到的 vi)中使用 Esc 键。

答案4

也许我有一个不同的 shell 或类似的东西,但 ctrl+alt+[ 对我来说就可以了

相关内容