有时我的文件只是冻结在我的vi | vim中,发生了什么?


298

有时,当我使用vi或vim编辑文件时,文件会冻结。即使我输入Ctrl+CCtrl+D,它也仍然在那里冻结。我kill -9 <pid>在另一个终端上,该pid被杀死了,但是该文件仍然冻结在那里。

我想我一定输入了一些我不知道的键组合。有人有主意吗?

Answers:


605

Ctrl- S可能是罪魁祸首;它会在大多数终端中停止屏幕输出。如Michael所述,您可以通过输入Ctrl- 将屏幕恢复到正常状态Q

从理论上讲,该设置stty -ixon应防止Ctrl- S冻结屏幕,但不适用于我的本地Solaris 10登录名。


@CallMeNorm-这也发生在屏幕/ tmux / etc等卑鄙的<Ctrl-A>快捷键上,因为我的手指很粗。;)
Cometsong

如果出于某种原因-您在全局范围内重新映射(“未激活”)Ctrl-Q(例如,以避免意外退出Firefox),stty -ixon~/.bashrc在终端中添加启用的Ctrl-q。就我而言,Ctrl-s冻结了Vim,直到我对.bashrc进行了修改,我还是无法回到它。此处的详细信息:superuser.com/a/1328326/409327
Victoria Stuart

75

您是否恰巧在GNU屏幕内使用它?(如pra所指出的,即使在屏幕外部也是如此)。偶然击中Ctrl+Sxoff)很普遍,这会禁用屏幕绘画,直到您击中Ctrl+Qxon


如果我的vim与cscope结合使用,是否有任何键可以冻结文件?
user399517 2010年

1
我输入shift + insert后,它有时会发生,并且vi显示:打开模式。
user399517

1
Ctr-S并非特定于GNU屏幕。
PRA

1

如果Ctrl+ S不是您的问题(如pra的答案),则可能会对您有所帮助。

如果您尝试使用Vundle安装一堆自定义插件,则有时会出现问题。您可以尝试手动删除这些软件包,看看是否有帮助。找出插件写入的位置-在我的情况下,它们都在.vim/bundle目录中,因为我git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim以前安装过Vundle。因此,一旦进入.vim目录,您就可以擦除整个bundle文件夹以删除所有插件,然后通过执行重新开始rm -rf bundle

希望能帮助到你!


-11

您可以尝试更改键盘布局。Vi | vim仅与英语(-?)输入交互。

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.