Xshell、远程终端莫名卡死的解决方法 — CCIE那点事

Xshell、远程终端莫名卡死的解决方法

来源:本站原创 脚本技巧 超过82 views围观 0条评论

前言

最近通过Xshell连接远程服务器,然后使用Vim修改文件时会莫名其妙的卡死,一开始我还没注意,因为近期的网络一直不太好,经常出现按下一个字母半天才反应过来的情况,所以我没有太在意,直接关闭终端重新打开就好。直到有一天我开着两个终端的时候,Vim又卡着不动了,而另一个终端还以流畅的处理我敲击的命令,我就断定这肯定不是网络原因了。

原因

既然是Vim卡住了那就查查Vim本身有什么BUG吧,结果上网搜了一圈发现原来是远程终端的问题,根本就不关Vim的事,它只是躺着中枪了而已(*^▽^*),实际上就是不小心按下了快捷键 Ctrl+S 导致的,为什么常常是Vim卡住呢?那是因为很多人习惯了在 Windows上 的保存快捷键,写写文档总是习惯性按下快捷键 Ctrl+S 保存一下,来避免程序突然崩溃导致文档丢失,这就解释了为什么出问题的总是Vim,因为使用Vim编辑文本有时会习惯性的按下 Ctrl+S 保存,而在执行Shell命令是很小的概率会按 Ctrl+S,所以大多数人卡住往往是在使用Vim的时候。

可是快捷键

原因是按了 Ctrl+S 为什么会导致终端卡死呢?实际上这个快捷键的含义是“阻断向终端输出内容”,很多人说这个快捷键的作用是暂停终端,我个人感觉这种说法并不准确,实际是上终端并没有暂停,按下 Ctrl+S快捷键后,你依然可以像终端发送命令,终端也会正常执行,只是不会将反馈内容和结果显示在终端上而已,这个特性可以用来暂停显示快速滚动输出的内容,比如在编译大型项目的时候。

解决办法

解除这种状态的方法很简单,按下快捷键 使用Ctrl+Q进行解决 就可以“恢复向终端输出内容”,只是很多时候我们并不知道,以为是终端卡死了然后错杀了程序!

附注

关于这个问题,Vim文档中“SECTION 32 – VIM ON UNIX”一节也给出了回答,有兴趣的小伙伴可以自己看一下:

32.1. I am running Vim in a xterm. When I press the CTRL-S key, Vim freezes. What should I do now?

vimdoc.sourceforge.net

版权声明:本文为博主原创文章,转载请注明出处。更多精彩文章请关注微信公众号:写代码的苏东坡 https://blog.csdn.net/shihengzhen101/article/details/79245887

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=3781转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

快捷键:Ctrl+Enter