Bash は .inputrc の vi-ins/cmd-mode-string オプションを無視します。

Bash は .inputrc の vi-ins/cmd-mode-string オプションを無視します。

最初に.inputrcを作成するとき(デフォルトでは存在しません)、モードを区別するためにvi-ins-mode-string「+」と「:」を設定しました。vi-cmd-mode-stringデフォルトでは、プロンプトの前に「(cmd)」または「(ins)」が追加されていませんが、そのオプションを表示したいので、.inputrcでそのオプションを変更しました。しかし、「+」と「:」が私のbashプロンプトの前に表示され続けている理由はわかりません。source.inputrcを使用してインポートしようとしましたが、bind端末のすべてのインスタンスを終了しましたが、何も機能しません。私がここで何か間違っているのでしょうか?私の.inputrcは現在次のようになります。

set show-mode-in-prompt on
set vi-ins-mode-string "(ins)"
set vi-cmd-mode-string "(cmd)"

編集する:仮想環境(重要な場合はcondaで作成)内でPythonの対話型cliを起動すると、(ins)と(cmd)が適切に追加されます。私の通常のbashコマンドラインでのみ「+」と「:」が表示され続けます。

答え1

  1. ファイルに次の行を追加します~/.inputrc
  2. シェルを再起動します(新しいターミナルセッションを開く)。
  3. シェルがコマンドラインモードbashになっていることを確認してください。viset -o vi

または:

  1. ファイルに次の行を追加します~/.inputrc
  2. bashファイルの再読み込みを有効にしますCtrl+XCtrl+Remacs最初に一時モードに切り替えるには使用する必要がありますset -o emacs)。
  3. シェルがコマンドラインモードbashになっていることを確認してください。viset -o vi

環境変数がある場合、INPUTRCこれはファイルを指します。実際に使用される。シェルの起動ファイルから変数を削除し(そしてシェルを再起動する)、デフォルトが存在することを確認します$HOME/.inputrc(そしてシェルを再起動します)。

関連情報