30 October 2013

Vim 中误操作

由于用惯了Emacs, 有时为了速度在其他服务器上用vi常常会按emacs的快捷键。当然vi往往会集成一些emacs的快捷键比如C-n C-p等等。但是还是有很多键是有其他意义的,而这个保存键就很容易按错。C-x C-s(通常emacs保存或者推出都会用到这个键)在vim下会让你进入^X Mode。之后所有键都不管用了。

这是为什么呢?

首先,C-x进入了completion mode。可以参考官方文档,或者命令行键入:help ins-completion

不过卡住的原因并不是因为vim。而是因为在命令行下C-s表示“流控制”。这个是你在使用终端登录linux时会用到的一个基本快捷键。

软件流控制表示的是通信两端通信的一种机制,如果一端不能处理数据了,它就向另一端发送一个关闭流的消息,如果可以处理了,再发送一个开放流的消息。而这个消息可以通过键盘出发。也就是C-s C-q

因此,利用C-q就可以结束流控制。在远程登录terminal中任何时间(emacs中除外)发送C-s都会发生关闭流中断。



blog comments powered by Disqus