我已经通过我的网络主机使用 Vim 几个月了(他们允许使用 Putty)。突然间,按键escape
没有反应了。我无法通过简单地按下 Esc 键退出插入或任何其他模式。我必须按下 ,F1
这会调出 Vim 中的帮助并将我踢入命令模式。
我非常确定我键盘上的 Esc 键功能正常,因为所有使用 Esc 键的 Windows 快捷方式都可以正常运行。
我知道这个问题很荒谬,我确信还有很多东西需要研究才能找到解决方案。我真正需要的是一条可靠的线索,让我知道从哪里开始寻找。
可能有帮助的事情:
- 我通过 putty 使用 vim
- 我正在使用 jailshell 登录
- 我不是 root
答案1
尝试使用Ctrl-[
而不是Esc
。
结果是什么:
python -c "print ord(raw_input('char '))"
按Esc
和时Enter
?结果应为“27”。按 的结果是什么?Ctrl-V
Esc
您是否检查过PuTTY中的所有设置是否合理?
你在远程系统上使用 Bash 吗?查看
bind -p | grep -i '\\e' | less
看看是否有任何异常。您有一个名为的文件吗~/.inputrc
?查看其内容以查看是否有任何异常。
看看你的~/.vimrc
,看看一切是否都正常。
答案2
我错误地按了Ctrl+ s,结果卡在了插入模式。要退出,请使用Ctrl+ q。
答案3
也许你正在使用插入模式。
'insertmode' 'im' 'noinsertmode' 'noim'
布尔值(默认关闭)
使 Vim 以插入模式为默认模式的方式工作。如果你想将 Vim 用作非模式编辑器,则此功能很有用。用于 |evim|。
[...]
- 用于CTRL-O执行一个普通模式命令 |i_CTRL-O|)。当这是一个映射时,它会像 'insertmode' 关闭时一样执行。普通模式保持活动状态,直到映射完成。- 用于CTRL-L执行多个普通模式命令,然后用于 Esc返回到插入模式。请注意,CTRL-L将光标向左移动,就像未设置 'insertmode' 时一样。|i_CTRL-L|
我建议进行编辑~/.vimrc
以添加以下行:
set noinsertmode "disable insert mode
答案4
我遇到了这个问题,但后来意识到这是由于意外将 SCIM 输入模式更改为“其他 - RAW CODE”造成的。我将其改回英语/键盘,没有再遇到任何问题。