Ubuntu终端中止命令重映射问题求助(Alt与Ctrl键交换后)
我之前也碰到过一模一样的情况——为了适配Mac的操作习惯交换了Ubuntu的Alt和Ctrl键,结果终端里再也没法用原来的快捷键中断命令了,折腾了好几种方法才搞定,给你几个亲测有效的方案:
方案1:用
stty直接绑定中断信号(最快捷) 终端里的Ctrl+C本质是给进程发送SIGINT中断信号,我们可以用stty命令直接把这个信号绑定到你现在想用的按键(也就是交换后的Alt+C):
- 临时生效:打开终端,输入
stty intr ^[c。这里的^[是Alt键的转义字符,你也可以手动输入:先按Ctrl+V,再按Alt,就能自动打出^[,接着输入c就行。 - 永久生效:把上面的命令添加到你的
~/.bashrc(如果用bash)或者~/.zshrc(如果用zsh)文件末尾,保存后重启终端,以后每次打开都会自动生效。
方案2:通过GNOME终端图形界面配置(直观)
其实终端偏好里是能改这个快捷键的,只是位置比较隐蔽:
- 打开终端,点击顶部菜单栏的 编辑 → 键盘快捷键
- 在弹出的窗口里往下翻,找到 发送中断信号 这一项
- 点击它当前的快捷键(默认是
Ctrl+C),然后按下你现在想用来中断的按键(比如Alt+C),确认保存就好。
小贴士:如果这个快捷键已经被其他功能占用,系统会提示你,你可以先解除原有绑定再重新设置。
方案3:修正dconf配置(之前的设置路径错了)
你之前修改的escape选项是用来设置终端退出全屏的快捷键,和中断信号完全没关系!正确的dconf配置路径应该是:
- 先安装dconf编辑器(如果没装的话):
sudo apt install dconf-editor - 打开
dconf-editor,导航到/org/gnome/terminal/legacy/keybindings/ - 找到
send-signal-int这个键,把它的值改成['<Alt>c'] - 或者直接用命令行一步到位:
gsettings set org.gnome.Terminal.Legacy.Keybindings send-signal-int "'<Alt>c'"
内容的提问来源于stack exchange,提问作者Niklas
相关产品推荐
相关产品推荐

