これらは bash の機能ではなく、ターミナル ドライバーの機能です。そのため、それらは stty(1)
で指定されます .
$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
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; flush = ^O; min = 1; time = 0;
-parenb -parodd 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
これはほぼです これで完全に解決。ソリューションの一部は、http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ の MTK358 によって最初に注目されました。 .彼は、konsole のメニュー設定によって、コピー アンド ペーストのショートカット キーを簡単に変更できるという (かなり明白で、非常に恥ずかしい) 事実を指摘しました。これを見たら、ターミナルで Ctrl-C と Ctrl-V をコピーして貼り付けるように設定するのに約 1 分かかりました。
解決策の他の部分は、stty のマニュアル ページから明らかなはずでしたが、(私には)わかりませんでした。上記のようなさまざまな手がかりに基づいて実験することになりました.
終了コマンドとして Ctrl-C を置き換える非数字キーを決定しました。 (「k」を使用しました)。 shift 修飾子を stty に伝える方法についての情報が見つからなかったので、あきらめました。そう決めたら、あとはコマンド ラインで次のように入力するだけでした:
stty イントラ \^k
すべてが希望どおりに機能することを確認しました。
ここで、上記の単一のコマンド (stty intr \^k) を起動スクリプトに配置する必要がありました。どちらが「適切」なのかわかりません。この変更がシステム全体で恒久的に行われることを望みます.
コマンドをどのスクリプトに配置すればよいかについて何か提案はありますか?
そして最後に、説教的な返答については、それらは不必要で役に立たない.
これらのいくつかは、通常の KDE キーボード ショートカット メカニズムを使用して設定できます。 Konsole の「設定」メニューで、「ショートカットの構成」をクリックすると、KDE によって処理される機能のキー割り当てを変更するために使用できるダイアログが表示されます。これにより、Ctrl+C をコピーに、Ctrl+V を貼り付けに再マップすることができます。たとえば、Ctrl+C でプログラムを中断します。
その他の機能は readline
によって制御されます ファイル ~/.inputrc
を編集して設定できるライブラリ .現在の行で行われた編集を Ctrl+Z で元に戻すには、次のように追加します
C-z: revert-line
ただし、そのキー シーケンスはおそらく端末によって既にトラップされているため、stty
を使用する必要がある場合があります。 動作する前にバインドを解除します。最初に ^Z
を探します stty -a
の出力 (イグナシオの回答に示されているように)そして、たとえば susp = ^Z
に表示される場合 、実行
stty susp ^-
そのキー マッピングをバインド解除します。
あなたが求めている他の変更は stty
で行う必要があります イグナシオが言うように、これらは端末機能であるためですが、正確な方法はわかりません。問題は、端末がShiftを認識しているかどうか、または認識している場合、その情報をstty
に伝える方法がわからないことです .