Ctrl+C 不再能在 bash 中取得新的空白行

Ctrl+C 不再能在 bash 中取得新的空白行

我一直在大多數終端上使用 Ctrl+C 來輕鬆取消我正在編寫的行並為新行開闢道路。 (我不是說殺死正在運行的 bash 腳本,而只是打開一個新的空行)出於我無法想像的原因,此功能在 SSH 打開的遠端 shell 上被關閉。

Ctrl+C 適用於大多數其他情況(例如終止正在執行的腳本、退出 VIM 插入模式),但將不再跳過該行並轉到常規 shell 中的下一個。

這是在 Amazon linux 2 上運行的 shell,但我在其他 Amazon Linux 2 機器上從未遇到過此問題,所以它可能來自我所做的事情...

知道可能發生了什麼以及如何解決它嗎?

同時,我一直按刪除鍵,儘管將按鍵重複時間降至最低,但速度仍然很慢。

編輯 -

我使用 SSH 連接到終端,這很有趣:如果我在 SSH 終端內打開一個新 shell(使用bash),則 CTRL+C 會再次起作用!

答案1

要修復它,您可以使用stty命令重置它。

$ stty intr \^c

若要查看intr目前設定的內容,您可以使用:

$ stty -a 

$ stty -a

速度38400波特;第 21 行;第 161 欄;行=0; intr = ^C;退出=^\;擦除= ^?殺死=^U; eof = ^D; eol = M-^?; eol2 = M-^?;開關=;開始=^Q;停止=^S;暫停=^Z; rprnt = ^R;韋拉塞 = ^W;下一個 = ^V;齊平=^O;分鐘= 1;時間=0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf88 -crnucnl ixon -ixoff -iuclc ixany imaxbel iutf8o -crnucluclucl -iuclc onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

其功能intr在手冊頁中描述為:

字元型

CHAR會發送中斷訊號

https://linux.die.net/man/1/stty

相關內容