web-dev-qa-db-ja.com

ターミナルでショートカットをアンバインドする方法

Ubuntu 18.04

私はIDEで組み込み端末を使用しており、IDEバインディングがあります Ctrl8 これは非常に便利で便利であり、再バインドしたくありません。しかし Ctrl8 ショートカットは Backspace IDEに埋め込まれた端末に焦点を合わせたとき、これは本当に迷惑です。さらに Ctrl8 後方の文字削除のために私には役に立たないようです。

ターミナルを開こうとした後、Edit-> Preferencesを開いてからShortcutsを開きましたが、 Ctrl8 そこで。では、単に無効にする方法は?構成ファイルはありますか?

1
St.Antario

Ctrl8 通常の意味でのショートカットではありません。多くの端末エミュレータは、従来通り^?(別名 Ctrl?) にとって Ctrl8 (詳細については このU&Lの投稿 をご覧ください)。これは、notであり、通常はソースコードを変更する以外の構成可能な動作です。

^?は、ASCII Delおよび^H(別名 CtrlH)for ASCII Backspace(詳細については この情報投稿 を参照)。

したくない場合 Ctrl8 キャラクターを削除するには、変更が必要になる場合があります。

  • 端末が送信する制御コード Backspace キー。 GNOMEターミナルは通常、デフォルトで^?(ASCII DEL)、IIRCに設定されているため、^Hに設定する必要があります。 GNOMEターミナルでは、Edit->Profile Preferences->Compatibility

    enter image description here

    端末にこれを設定するオプションがなく、^?を送信する場合 Backspace、その後、次の2つのステップが壊れます 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'
    
  • シェルが前の文字を消去するために使用する制御コード。 bashでは、デフォルトはboth^Hおよび^?が制御TTYのerase文字の場合、^?になります。

    現在の状態を確認してください:

    $ 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ショートカットを変更できます。

3
muru