如何重置 bash 键盘快捷键?

如何重置 bash 键盘快捷键?

如何重置 bash shell 的Ctrl+C键盘快捷键?几个月前我更改了它,但似乎无法恢复。

答案1

在终端中用于取消进程的Ctrl+快捷键是C不是一个 bash 快捷方式,但与 tty 相关,因为它是可以发送到终端中处于活动状态的进程的信号之一(在本例中为 SIGINT)的快捷方式。如前所述在这次讨论中经过维尔德普拉瑟

终端(驱动程序)拦截 ^C 并将其转换为发送给附加进程(即 shell)的信号。

有关如何处理 SIGINT 和其他 POSIX 信号的更多信息,请参阅这篇深入的文章

需要注意的是,Bash 快捷键(如Ctrl+ A(移至行首)等)由 readline 库管理;当前绑定可以通过 显示bind -P;请参阅man bashman readline,或Ubuntu 在线手册页。但是,即使您还使用 readline 或在您的 中设置了Ctrl+ ,tty 设置+仍然会覆盖它。C.inputrcCtrlC

然而,您应该检查是否更改了 中的任何键盘快捷键gnome terminal。转到菜单并单击编辑 > 键盘快捷键,就好像您已经创建了其中一个Ctrl+C来覆盖 tty Ctrl+一样C


去检查当前 ttybindings run stty -a,其中列出了例如

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;

为了清除中断信号(intr)的当前绑定,首先运行:

stty intr ^-然后才运行stty intr ^C重新分配快捷方式。

确保使用大写字母 C,因为这非常重要。这是重置快捷方式的方法,但如果这仍然不起作用,您可能需要放入stty intr ^C一个文件并在终端启动时读取它,正如我讨论的那样在这里的相关答案中

Ctrl更多关于+ 的一般信息C可以在以下两篇 Stackoverflow 文章中找到:

答案2

重新分配中断信号(或信号情报), 调用stty命令以及适当的映射参数:

stty intr ^c

来源:

相关内容