bash vi キーバインディング: キーをマップできますか? 表示モード (挿入 vs コマンド)?

bash vi キーバインディング: キーをマップできますか? 表示モード (挿入 vs コマンド)?

私は長年の vi(m) ユーザーですが、最近、bash で vi キー バインディングを使用するように切り替えました。これで改善されることは既にわかっていますが、本当に使いこなせるようになるには、いくつかのことをカスタマイズしたいと思っています。

  1. 現在、次のマッピングを使用しており、完全に定着しています: map ii <esc>。コマンド ラインでも同じことができますか? 些細なことのように思えるかもしれませんが、私は i を 2 回タップすることに慣れすぎていて、Esc キーまで手を伸ばすのが苦痛なのです。
  2. 挿入モードかコマンドモードか、どのモードになっているかを示す方法を見つけたいと思っています。カーソルの種類や色を変更したり、プロンプトにメモを入れたりといった方法が考えられます。

私は bash のマニュアル ページを調べ、.inputrc ファイルの作成を検討しましたが、今のところ、うまく機能するものは見つかりません。キーをマップできることはわかりましたが、私のように 2 つのキーを連続してすばやく押すこともできますか?

zsh で動作するというソリューションを見たことはある。zsh に切り替えるつもりはない。bash でこれが不可能なら、それで我慢できる。

答え1

最初のリクエストはだから答えるリンクイン翻訳:コメントあなたの投稿に。

bash 4.3 と readline 6.3 をお持ちの場合は、2 番目のリクエストが可能になります。以下を に追加するだけです.inputrc:

set show-mode-in-prompt on

私の場合、挿入モードではプロンプトの先頭に「+」が追加され、コマンド モードでは「:」に変わります。

ソース:この答えによるえむぴー584StackOverflow で。

関連情報