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;退出 = ^\;擦除 = ^?;kill = ^U;eof = ^D;eol = M-^?;eol2 = M-^?;swtch =;开始 = ^Q;停止 = ^S;susp = ^Z;rprnt = ^R;werase = ^W;lnext = ^V;flush = ^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 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

的功能intr在手册页中描述为:

字符

CHAR 将发送中断信号

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

相关内容