轉(zhuǎn)載自AlbertS
最近通過(guò)Xshell連接遠(yuǎn)程服務(wù)器,然后使用Vim修改文件時(shí)會(huì)莫名其妙的卡死合是,一開(kāi)始我還沒(méi)注意了罪,因?yàn)榻诘木W(wǎng)絡(luò)一直不太好,經(jīng)常出現(xiàn)按下一個(gè)字母半天才反應(yīng)過(guò)來(lái)的情況聪全,所以我沒(méi)有太在意泊藕,直接關(guān)閉終端重新打開(kāi)就好。直到有一天我開(kāi)著兩個(gè)終端的時(shí)候难礼,Vim又卡著不動(dòng)了娃圆,而另一個(gè)終端還以流暢的處理我敲擊的命令,我就斷定這肯定不是網(wǎng)絡(luò)原因了蛾茉。
原因
既然是Vim卡住了那就查查Vim本身有什么BUG吧讼呢,結(jié)果上網(wǎng)搜了一圈發(fā)現(xiàn)原來(lái)是遠(yuǎn)程終端的問(wèn)題,根本就不關(guān)Vim的事臀稚,它只是躺著中槍了而已(▽)吝岭,實(shí)際上就是不小心按下了快捷鍵 Ctrl+S 導(dǎo)致的,為什么常常是Vim卡住呢吧寺?那是因?yàn)楹芏嗳肆?xí)慣了在 Windows上 的保存快捷鍵窜管,寫(xiě)寫(xiě)文檔總是習(xí)慣性按下快捷鍵 Ctrl+S 保存一下,來(lái)避免程序突然崩潰導(dǎo)致文檔丟失稚机,這就解釋了為什么出問(wèn)題的總是Vim幕帆,因?yàn)槭褂肰im編輯文本有時(shí)會(huì)習(xí)慣性的按下 Ctrl+S 保存,而在執(zhí)行Shell命令是很小的概率會(huì)按 Ctrl+S赖条,所以大多數(shù)人卡住往往是在使用Vim的時(shí)候失乾。
可是快捷鍵 Ctrl+S 為什么會(huì)導(dǎo)致終端卡死呢常熙?實(shí)際上這個(gè)快捷鍵的含義是“阻斷向終端輸出內(nèi)容”,很多人說(shuō)這個(gè)快捷鍵的作用是暫停終端碱茁,我個(gè)人感覺(jué)這種說(shuō)法并不準(zhǔn)確裸卫,實(shí)際是上終端并沒(méi)有暫停,按下 Ctrl+S快捷鍵后纽竣,你依然可以像終端發(fā)送命令墓贿,終端也會(huì)正常執(zhí)行,只是不會(huì)將反饋內(nèi)容和結(jié)果顯示在終端上而已蜓氨,這個(gè)特性可以用來(lái)暫停顯示快速滾動(dòng)輸出的內(nèi)容聋袋,比如在編譯大型項(xiàng)目的時(shí)候。