私はset -o vi
bash()でviモードを使い始めましたが、私のラップトップにはEscキー(愚かなタッチバー...)がないので、コマンドラインから挿入モードを終了するのは面倒です。 Vimでは、Ctrl-CをEscキーと同じ機能に再マップすることを考えました。
現在、Ctrl-Cは通常シェルで非常に重要な目的を持っているので、そのキーの組み合わせをEscにマッピングするのはおそらく良い考えではありませんが、単に好奇心から来ています。
readlineでEscキーと同じ操作をマッピングまたはCtrl-C
実行できますか?Ctrl-$something
答え1
この部分は、追加設定なしでreadlineまたは通常の端末で代わりにCtrl-$something
使用できます。Ctrl-[
Escape
Ctrl-@
、、、、 (=>または=>などの端末特殊文字ではない場合)、たとえば、次のようにバインドすることもCtrl-[A-Z]
できCtrl-[
ます。Ctrl-\
Ctrl-]
Ctrl-^
Ctrl-_
Ctrl-D
eof
Ctrl-\
quit
bind '"\C-@": "\e"'
一部の端末では、結合と結合によってCtrl-@
生成されることもあります。Ctrl-`
Ctrl-_
Ctrl-/
また、これらの組み合わせは通常、端末エミュレータの設定に従ってほとんどの端末Alt-key
にマッピングされるため、バインディングの代わりに次のものを使用できます。Esc-key
Alt-C
Ctrl-C
Escape
bind '"\ec":"\e"'
この部分では、ttyドライバはCtrl-C
bashまたはreadlineに達する前にCtrl-C
特別なキー()として扱います。なぜなら、readlineはintr
ラインエディタに入ってもtty設定をオフにしないからです。ISIG
たとえば、もちろん常にこれを行うことができます。
stty intr ^]; bind '"\C-C":"\e"'
作業を中断したいときにCtrl-]
代わりに使用するように再教育しますが、これは明らかに非常に悪い考えです。Ctrl-C