Vim 卡在插入模式

Vim 卡在插入模式

我已经通过我的网络主机使用 Vim 几个月了(他们允许使用 Putty)。突然间,按键escape没有反应了。我无法通过简单地按下 Esc 键退出插入或任何其他模式。我必须按下 ,F1这会调出 Vim 中的帮助并将我踢入命令模式。

我非常确定我键盘上的 Esc 键功能正常,因为所有使用 Esc 键的 Windows 快捷方式都可以正常运行。

我知道这个问题很荒谬,我确信还有很多东西需要研究才能找到解决方案。我真正需要的是一条可靠的线索,让我知道从哪里开始寻找。

可能有帮助的事情:

  1. 我通过 putty 使用 vim
  2. 我正在使用 jailshell 登录
  3. 我不是 root

答案1

尝试使用Ctrl-[而不是Esc

结果是什么:

python -c "print ord(raw_input('char '))"

Esc和时Enter?结果应为“27”。按 的结果是什么?Ctrl-VEsc

您是否检查过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”造成的。我将其改回英语/键盘,没有再遇到任何问题。

相关内容