私はちょうどこの奇跡を発見し、set -o vi
このviシェルモードをviやvimと同じようにカスタマイズできるかどうか疑問に思います。
たとえば、より便利なキーやキーの組み合わせをesc
?
現在サポートされていない場合、一部のカスタマイズでプログラムのソースコードとハードコードを変更するのはどれほど難しいですか?それとも悪い考えですか?
答え1
はい、組み込みコマンド(viやemacsなどのモードの場合)を使用してキーマップを変更できますbind
。これは実際にはreadline機能です(したがって、bashだけでなくすべてのreadlineプログラムでviに似たバインディングを持つことができます)。
探しているキー名vi-movement-mode
、デフォルトは\e
(escape)です。また、これを次のように(やや愚かなことですが)同じようにバインドすることもできます。 2行目はエスケープされたバインディングを削除します。
$ bind "=":vi-movement-mode
$ bind -r "\e"
実行すると、bind -p
バインドできるすべてのキーと現在のバインディング(存在する場合)が表示されます。
bind
コマンドをあなたのコマンドに入れたり実行したりするすべてのreadlineプログラムで動作するように.bashrc
編集できます。~/.inputrc
readline ドキュメントには詳細が含まれています。