我在tmux中使用分割窗格-一个是vim,另一个是shell。
有时,大约每天一次,vim会冻结。我可以在窗格之间移动,执行任何tmux命令,只是vim不会对任何事情做出反应。这仅在tmux中发生。我目前唯一的解决方案是杀死该窗格并创建一个新窗格。

评论

这从来没有发生过,我以这种方式广泛使用了tmux + Vim。这并不意味着它不会发生在您身上,而是意味着您必须尝试更精确地定位何时发生,以找出原因。相关信息是您使用的终端。一个想法:您不只是不小心在Vim窗口中按了Ctrl + S吗?在这种情况下,请按Ctrl + Q以“解冻”。

为了澄清起见,我使用Ubuntu 12.10,tmux,zsh和gnome终端模拟器。我的tmux前缀是反弹到ctrl + s。如果我按前缀+ ctrl + s,vim将冻结。不带前缀的ctrl + q会冻结它。这使我感到困惑,为什么在shell中不会发生这种情况。

当我保存并按^ z将vim放到后台过快后,似乎发生了同样的事情。

#1 楼

您可能已经按了Ctrl + S,这将关闭终端中的流控制并停止终端接受输入。通过按Ctrl + Q重新启用它。

评论


当您刚开始使用vim / terminal编辑器作为主编辑器时,这是一个非常常见的问题。稍后,您最终将:wq散布在所有文档中(或者,我不确定是ZZ),并且感到很傻。

–Rob
13年7月29日在15:14

从如此模糊的描述中,您如何正确地猜测问题真是令人惊讶。谢谢!

–DBedrenko
2014年5月30日8:00

神圣的...!我多年来一直遇到这个问题,但从未真正寻找解决方案。这个答案是我找到的第一个解决方案,从字面上看,我花了3秒钟……所有这些时间都浪费了,而您只有几秒钟的路程才得到了解决方案。希望我能更多地投票给你(我自己也投下反对票)。谢谢!

–simendsjo
2014年10月10日在21:29

另一个可能出现此问题的时间是在编辑器之间切换时(例如,emacs和vim)。它们具有不同的“保存”命令,肌肉记忆混乱,因此冻结。

– Utkarsh Sinha
2014年11月11日14:26

如果碰巧是两次不幸(以C-q为前缀的远程tmux会话):键入Cltr-q,然后输入:,然后输入tmux:send-keys C-q!

– Paschalis
16-4-14在20:24



#2 楼

对我来说,这是一个gpm问题。运行:

sudo service gym restart


相关错误请参见此处。

#3 楼

我的故事涉及到

alias doodle='(f=$(mktemp); vim $f; echo $f)' # alias to quick edit a new file with whatever name


现在我使用这个别名diff -u $(doodle) $(doodle) vim说Vim: Warning: Output is not to a terminal
之后,终端冻结了。常用键无济于事,例如Ctrl + Q,Ctrl-C等。

按ZQ很有帮助。它会退出您所停留的vim,但是看不到谁的用户界面。

我想vim需要一些标志(尚未弄清哪个标志),以便从bach执行时在屏幕上显示自己模式。

希望对别人有帮助。