如何取消绑定终端中的快捷方式

如何取消绑定终端中的快捷方式

Ubuntu 18.04

我在 VSCode 中使用嵌入式终端,有一个键盘绑定Ctrl8,它非常有用且方便,我不想重新绑定它。但是,当 IDE 嵌入式终端处于焦点时,Ctrl8快捷方式会起作用,这真的很烦人。此外,对于向后删除字符来说,它似乎没用。BackspaceCtrl8

我尝试打开一个终端,然后打开编辑->优先, 然后快捷方式但我没找到Ctrl8。那么如何简单地禁用它?有配置文件吗?

答案1

Ctrl8不是通常意义上的快捷方式。许多终端仿真器通常将^?(又名Ctrl?)发送为Ctrl8(参见这篇 U&L 帖子了解详情)。不是通常是可配置的行为,无需修改源代码。

^?是 ASCII Del 的控制码,又称 ASCII Backspace 的控制码^HCtrlH请参阅这篇信息丰富的文章了解更多信息)。

因此,如果您不想Ctrl8删除角色,您可能需要更改:

  • 终端为该Backspace键发送的控制代码。GNOME 终端通常默认为^?(ASCII DEL),如果我没记错的话,因此您需要将其设置为^H。在 GNOME 终端中,编辑->个人资料偏好->兼容性

    在此处输入图片描述

    如果你的终端没有配置该选项并发送^?Backspace那么接下来的两个步骤将要休息Backspace

  • 伪 TTY 用于的控制代码erase

    检查一下现在是什么:

    $ stty -a | grep erase
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
    swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
    

    如果是erase= ^?,则需要进行以下更改:

    stty erase '^H'
    
  • shell 用于删除前一个字符的控制代码。在 bash 中,默认为两个都 ^H并且^?if^?erase控制 TTY 的字符。

    检查一下现在是什么:

    $ bind -p | grep backward-del
    "\C-h": backward-delete-char
    "\C-?": backward-delete-char
    

    删除绑定,并根据需要\C-?添加绑定:\C-h

    bind -r '\C-?'
    bind '\C-h: backward-delete-char'
    

    将这些添加到您的.bashrc以保存这些设置。


或者您可以更改您的 IDE 快捷方式。

相关内容