1. 症状
ターミナルでキー入力をしているうちに、キー操作を受け付けなくなった(フリーズした)ようにみえる。
2. 原因
Ctrl + S を押して、画面停止(STOP)を実行した。
- 一般的なアプリ : 保存
- ターミナル : 画面更新(スクロール)の一時停止
※ ターミナル通信(RS-232Cやアナログモデム)が低速な時代は Ctrl + S と Ctrl + Q を駆使して、画面のスクロールと一時停止を繰り返し、実行結果やメッセージを読み進んでいました。ターミナルにスクロール機能がなかった時代のTIPSです。
3. 解決方法
3.1. [一時的解決策] 画面停止を解除する
Ctrl + Q
3.2. [永久的解決策] Ctrl + S のキーバインドを無効(未定義)にする
.bashrcなどに以下の行を追加する。
1 |
stty stop undef |
4. キーバインド一覧表示方法
1 2 3 4 5 6 7 8 |
$ stty -a speed 38400 baud; rows 30; columns 120; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc |