Terminal
Ctrl-s 掛起終端模擬器?
我在 vimdoc 中遇到過一句話:
Note: CTRL-S does not work on all terminals and might block further input, use CTRL-Q to get going again.
並且使用 CTRL-S 確實掛起我的 vim。我在想這是vims的錯,因為我在emacs nox中使用
C-s
/時沒有問題。C-x C-s
但是,剛才,當我閱讀手冊頁並按 時Ctrl-s
,它也掛起man
(less
是輸出尋呼機)。那麼,有人可以告訴我發生了什麼嗎?
我測試過的終端模擬器是
xterm
和lxterminal
.tty
也有這個問題。ACtrl
+q
在所有情況下都取消掛起終端。
此功能稱為軟體流控制(XON/XOFF 流控制)
當數據鏈路的一端(在這種情況下為終端仿真器)無法接收更多數據(因為緩衝區已滿或接近滿或使用者發送
C-s
)時,它將發送一個“XOFF”以告知發送端數據鏈路暫停,直到收到“XON”信號。幕後發生的事情是“XOFF”告訴核心中的 TTY 驅動程序將發送數據的程序置於睡眠狀態(如暫停電影),直到向 TTY 驅動程序發送一個“XON”來告訴核心來恢復程序,就好像它從未停止過一樣。
C-s
啟用終端滾動鎖定。這可以防止您的終端滾動(通過發送“XOFF”信號來暫停軟體的輸出)。
C-q
禁用滾動鎖定。恢復終端滾動(通過發送“XON”信號恢復軟體的輸出)。這個特性是遺留的(當終端非常慢並且不允許滾動時)並且預設啟用。
要禁用此功能,您需要在
~/.bash_profile
或中進行以下操作~/.bashrc
:stty -ixon