經常使用Putty或者Xterm之類命令行控制Linux系統的朋友,或許遇到像我這樣子的問題:在按下CTRL+S後,命令行完全沒有響應。然後關閉窗口重新打開,這樣非常不爽,現在我們就來解決這個破問題。
只要使用的第一個編輯器不是VIM,或者Emacs的朋友,幾乎在編輯過程中最常用的快捷鍵恐怕就是CTRL+S 了。而對於經常使用Putty或者Xterm之類命令行控制Linux、Unix系統的朋友,恐怕也經常遇到和我一樣的問題,本能的按下CTRL+S之後,發現命令行完全沒有響應了。無奈之下,只能重開窗口,重新打開新的命令行界面。
每次重開命令行,都需要先連接服務器,kill掉曾經啟動的程序,然後再重新執行他們。
其實,這是因為CTRL+S啟動了XOFF(關閉流控制)。這會讓終端正常接受按鍵操作,但是並不會做任何輸出,感覺就像命令行沒有響應了一樣。
這篇文章將為您提供三大解決方案:
立竿見影的解決方案
一勞永逸的解決方案
一箭雙雕的解決方案
立竿見影的解決方案
直接CTRL+Q,打開流控制(XON). 如果在CTRL+Q操作之前,你做了其他一些按鍵操作,此時,您應該能在終端重新看到這些輸出了。
一勞永逸的解決方案
可以直接在.bashrc中禁止CTRL+S命令發送XOFF。
在您的.bashrc中添加如下兩行( 可以man stty查看更多選項):
stty ixany
stty ixoff -ixon
一箭雙雕的解決方案
其實,我們真的可以讓CTRL+S在VIM中用於保存文件:
.bashrc中的修改
stty ixany
stty ixoff -ixon
stty stop undef
stty start undef
.vimrc中的修改, CTRL+S保存當前文件
map :w
imap :wa