我有两台不同的机器(家庭和工作)运行 Ubuntu 18.04。昨晚vim
家里冻僵了。我处于插入模式并输入内容并保存(esc :w
),但什么也没发生。状态栏仍然显示-- INSERT --
,光标仍然在原来的位置闪烁。我卡住了。我找不到出路。我无法打字(打字时没有任何反应),我无法四处移动(向上和向下箭头没有任何反应)。它卡在插入模式下,光标在原来的位置闪烁。
我确实在同时处理多项任务,并且可能按下了其他一些键,但我不知道是什么键。不过,已经晚了,所以我关闭了终端窗口并再次尝试(我正在输入 git commit 消息)。它发生了再次在我打字的过程中,所以我改用了git commit -m "don't need an editor for this"
。然后我关闭电脑并停止工作。
我以为我只是累了,但今天我在另一台笔记本电脑上工作时却发生了这种情况。我再次同时处理多项任务,不能发誓我没有输入任何奇怪的按键序列,但如果我这样做了,那也是偶然的。并且同一终端中的其他选项卡不会冻结。
我已经习惯了陷入visual
vim 模式中。这是我学到的一个技巧。但陷入插入模式?关于我可能做了什么以及如何摆脱它有什么想法吗?
根据我尝试查看的评论建议,.viminfo
但我看到的唯一内容.viminfo
是由以下内容独家拥有的root
,并且似乎仅显示我将编辑的内容sudo
:
# Input Line History (newest to oldest):
# Debug Line History (newest to oldest):
# Registers:
# File marks:
'0 1 0 /etc/neomuttrc
|4,48,1,0,1531789956,"/etc/neomuttrc"
'1 1 66 /etc/apt/sources.list.d/signal-bionic.list
|4,49,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
'2 51 0 /etc/apt/sources.list
|4,50,51,0,1530816531,"/etc/apt/sources.list"
# Jumplist (newest first):
-' 1 0 /etc/neomuttrc
|4,39,1,0,1531789956,"/etc/neomuttrc"
-' 1 66 /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-' 1 66 /etc/apt/sources.list.d/signal-bionic.list
|4,39,1,66,1530816565,"/etc/apt/sources.list.d/signal-bionic.list"
-' 51 0 /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-' 51 0 /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-' 51 0 /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-' 51 0 /etc/apt/sources.list
|4,39,51,0,1530816531,"/etc/apt/sources.list"
-' 1 0 /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-' 1 0 /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-' 1 0 /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
-' 1 0 /etc/apt/sources.list
|4,39,1,0,1530816447,"/etc/apt/sources.list"
# History of marks within files (newest to oldest):
> /etc/neomuttrc
* 1531789952 0
" 1 0
> /etc/apt/sources.list.d/signal-bionic.list
* 1530816564 0
" 1 66
^ 1 67
. 1 66
+ 1 66
> /etc/apt/sources.list
* 1530816454 0
" 51 0
这似乎很奇怪,我没有一个非特权的文件.viminfo
,但我确实有sudo udpatedb
,而且locate .viminfo
仍然没有显示出超过一个根拥有的文件。
答案1
我经常错误地使用的一个键是CtrlS;停止所有终端输出,直到CtrlQ键入 a。
这就是XON/XOFF
控制流,默认情况下启用, 和^S
分别^Q
是默认值VSTART
和VSTOP
键 - 请参阅stty(1)
和termios(3)
联机帮助页。
您可以通过以下方式禁用它:
stty -ixon
vim
作为更改终端设置的一部分,不会重新启用它。
答案2
如果您正在运行vim
,gnome-terminal
请右键单击终端并确保在出现的上下文菜单中未选中“只读”选项可能会有所帮助。
当我运行时vim
,gnome-terminal
我有一个上下文菜单,可以通过右键单击或点击键盘上的菜单按钮来弹出。弹出的上下文菜单包含“只读”复选框。有时,当我不小心按下键盘上的特殊菜单按钮(按右 Ctrl 键按下)时,我会意外地切换只读开关。这可以防止击键到达终端,从而到达 vim。右键单击终端并确保它不是“只读”可能会有所帮助。
答案3
如果您安装了 CoC,请尝试等待几分钟。
我偶尔会遇到 Vim 死机的情况。刚才在寻找答案时,它自行解冻并弹出 CoC 错误。
一旦(或者如果)我找到了问题的实际根源,我将用更多详细信息更新这篇文章,但现在,只需等待几分钟,然后再破坏您的会话。