Bashまたはtmuxで `vi`コマンドライン編集( `set editor-mode vi`)の現在のモードを表示するには?

Bashまたはtmuxで `vi`コマンドライン編集( `set editor-mode vi`)の現在のモードを表示するには?

私は(Bashシェルで)viコマンドライン編集を使用しますset editing-mode vi~/.inputrc

viしかし、現在のコマンドライン編集がコマンドモードなのか入力モードなのかわからない点が苦しくなります。

viBashまたはtmuxで現在のコマンドライン編集モードを表示する方法はありますか?

答え1

以下では、カーソルスタイルを設定してモードを反映できます.inputrc

set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string \1\e[6 q\2
set vi-cmd-mode-string \1\e[2 q\2

# optionally:
# switch to block cursor before executing a command
set keymap vi-insert
RETURN: "\e\n"

これにより、挿入モードではビームカーソルが、通常モードではブロックカーソルが提供されます。

もっと見るhttps://stackoverflow.com/a/42107711/52817

答え2

set show-mode-in-prompt onreadline設定に追加できます(~/.inputrcまたは/etc/inputrc)。

シェルから直接切り替えるには、bind組み込みコマンドを使用して実行できます。

bind 'set show-mode-in-prompt on'

bind 'set show-mode-in-prompt off'

関連コンテンツを見るDebian Jessie の bash プロンプトの先頭に無効な @ 記号が表示されます。

関連情報