Ctrl-s Ctrl-q 停滞terminal滚动信息与放开

特性为Software Flow Control (XON/XOFF flow control)

当要给数据连接终端无法接受更多数据时,会发送XOFF来暂停,发送XON来继续接收。

C-s会使terminal滚动暂停。

C-q会解除锁定

关闭这个feature可以使用stty -ixon命令。可以将其写入.bashrc

原文:

This feature is called Software Flow Control (XON/XOFF flow control)

When one end of the data link (in this case the terminal emulator) can't receive any more data (because the buffer is full or nearing full or the user sends C-s) it will send an "XOFF" to tell the sending end of the data link to pause until the "XON" signal is received.

What is happening under the hood is the "XOFF" is telling the TTY driver in the kernel to put the process that is sending data into a sleep state (like pausing a movie) until the TTY driver is sent an "XON" to tell the kernel to resume the process as if it were never stopped in the first place.

C-s enables terminal scroll lock. Which prevents your terminal from scrolling (By sending an "XOFF" signal to pause the output of the software).

C-q disables the scroll lock. Resuming terminal scrolling (By sending an "XON" signal to resume the output of the software).

This feature is legacy (back when terminals were very slow and did not allow scrolling) and is enabled by default.

To disable this feature you need the following in either ~/.bash_profile or ~/.bashrc:

stty -ixon

 

参考:https://unix.stackexchange.com/questions/72086/ctrl-s-hangs-the-terminal-emulator

posted @ 2022-07-14 10:52  鸭子船长  阅读(67)  评论(0编辑  收藏  举报