为什么vim被冻结?

Ama*_*nda 35 vim

我有两台不同的机器(家庭和工作)运行 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
Run Code Online (Sandbox Code Playgroud)

这似乎很奇怪,我不会有一个无特权.viminfo,但我没有sudo udpatedblocate .viminfo仍然没有浮出水面超过一个超级用户拥有的文件。

mos*_*svy 81

我经常误用胖手指的一个键是CtrlS;停止所有终端输出,直到CtrlQ输入 a。

这就是XON/XOFF控制流,默认情况下启用,并且^S^Q分别是默认值VSTARTVSTOP键——请参阅stty(1)termios(3)联机帮助页。

您可以通过以下方式禁用它:

stty -ixon
Run Code Online (Sandbox Code Playgroud)

vim 作为更改终端设置的一部分,不会重新启用它。

  • 只是纯粹为 Ctrl Q 投票。这救了我!谢谢! (10认同)
  • 此外,我认为具有讽刺意味的是,通常可以让您在 vim 中拯救您的键绑定(ctrl + s)和通常将您搞砸的键绑定,可以节省您(ctrl + q) (6认同)