Vim卡在插入模式下


40

我已经通过我的网络主机使用Vim几个月了(他们允许putty访问)。突然之间, escape 钥匙变得反应迟钝。我只能通过简单的逃脱来存在插入或任何其他模式。我要打 F1 这带来了vim的帮助并将我踢进了命令模式。

我最确定我的键盘上的转义键功能正常,因为我使用转义键的所有Windows快捷键都能正常运行。

我知道这是一个荒谬的问题,我确信还有很多关于解决方案的问题。我真正需要的是一个坚实的领导,从哪里开始寻找。

可能有用的事情:

  1. 我通过腻子使用vim
  2. 我正在使用jailshell登录
  3. 我不是根

你的终端设置是什么?即什么是TERM环境变量设置为(在远程shell中)?
quack quixote

$ TERM设置为'xterm'
Levi Hackwith

是否 Ctrl-[ 工作?如果按,你会得到什么? Ctrl-v 然后逃跑?它应该显示为 ^[
Dennis Williamson

Ctrl- [工作。摇滚!这给我带来了很多挫折感。你有没有机会解释原因 esc 不再有效?另外,请将您的评论作为答案发布,以便我接受。
Levi Hackwith

我在读这篇文章时的第一个想法:“哦,他打破了他的'让我离开这里'按钮”
Daniel

Answers:


12

尝试使用 Ctrl-[ 代替 Esc

结果是什么:

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

当你按下 EscEnter?它应该是“27”。按下的结果是什么? Ctrl-V 然后 Esc

您是否检查过PuTTY中的所有设置以确定它们是否合理?

你在远程系统上使用Bash吗?看看输出

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

并看看你是否看到任何异常。你有一个名为的文件吗? ~/.inputrc?查看其内容,看看是否有异常。

看看你的 ~/.vimrc 并且看看是否一切都很好。


Ctrl-c也应该以插入模式结束('['有时候对某些键盘来说有点棘手)
akira

我运行了python脚本,它以空字符串的形式返回。我该如何解决?我正在使用腻子。
Keith

@Keith:您是否尝试过任何其他诊断建议?
Dennis Williamson

ctrl + [无论出于何种原因为我工作,不知道我做了什么让我的vim卡住了。
Derek Adair

125

我错了 按Ctrl + 小号 ,并陷入插入模式。要摆脱它的使用 按Ctrl + q


6
这不是插入模式 XOFF。您可以通过执行来禁用软件流控制 stty -ixon (将它添加到您的 ~/.bashrc )。然后,该击键将被绑定到其他东西。默认情况下,它在Bash中受到约束 forward-search-history (与Ctrl-r相反)。 Ctrl-q(Bash quoted-insert )也将可用。
Dennis Williamson

@DennisWilliamson不会 .bash_profile 是一个更好的地方?没有必要在非交互式shell中关闭它,是吗?
Piotr Dobrogost

1
@PiotrDobrogost: “当启动不是登录shell的交互式shell时,Bash会读取并执行来自〜/ .bashrc的命令,如果该文件存在的话。” .bash_profile 仅在Bash是登录shell时执行。 “所以,通常,你的〜/ .bash_profile包含这一行 if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Dennis Williamson

2
谢谢!这就是我做的。很高兴其他人习惯性地保存,无论程序如何。 :-)
NullVoxPopuli

2
救了我两次。
Elazar

4

也许你正在使用 插入模式

'insertmode''im''noinsertmode''noim'
布尔值(默认关闭)
使Vim以插入模式为默认模式的方式工作。如果你想使用Vim作为无模式编辑器,这很有用。用于| evim |。
[...]
- 使用 CTRL-O 执行一个正常模式命令| i_CTRL-O |)。什么时候         这是一个映射,它就像'insertmode'关闭一样执行。         正常模式保持活动状态,直到映射完成。       - 使用 CTRL-L 执行一些正常模式命令,然后使用 退出 返回插入模式。注意 CTRL-L 移动光标         左边,就像没有设置'insertmode'时一样。了| i_CTRL-L |

我建议编辑 ~/.vimrc 添加以下行:

set noinsertmode         "disable insert mode

1
在我的情况下,它卡在插入模式,因为我不小心在命令行中使用`-y`如手册所述:-y在简易模式下启动Vim,就像可执行文件被称为“evim”或“eview”。使Vim表现得像点击式编辑器。要退出此“缓和模式”,只需使用< kbd> CTRL< / kbd> +< kbd> l< / kbd> (L小写)由+ SandRock说
ton

0

我遇到了这个问题,但意识到这是因为意外地将SCIM输入模式改为“其他 - RAW CODE”。我把它改回英语/键盘,没有任何问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.