readlineでESCと同じことを行うためにCtrl-Cを再バインドできますか?

readlineでESCと同じことを行うためにCtrl-Cを再バインドできますか?

私はset -o vibash()で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-DeofCtrl-\quit

bind '"\C-@": "\e"'

一部の端末では、結合と結合によってCtrl-@生成されることもあります。Ctrl-`‎Ctrl-_Ctrl-/

また、これらの組み合わせは通常、端末エミュレータの設定に従ってほとんどの端末Alt-keyにマッピングされるため、バインディングの代わりに次のものを使用できます。Esc-keyAlt-CCtrl-CEscape

bind '"\ec":"\e"'

この部分では、ttyドライバはCtrl-Cbashまたはreadlineに達する前にCtrl-C特別なキー()として扱います。なぜなら、readlineはintrラインエディタに入ってもtty設定をオフにしないからです。ISIGたとえば、もちろん常にこれを行うことができます。

stty intr ^]; bind '"\C-C":"\e"'

作業を中断したいときにCtrl-]代わりに使用するように再教育しますが、これは明らかに非常に悪い考えです。Ctrl-C

おすすめ記事