「set -o vi」を設定するときにCtrl + Lを有効にして画面を消去する方法はありますか?

「set -o vi」を設定するときにCtrl + Lを有効にして画面を消去する方法はありますか?

Bash 基本モードでCtrl+ を押すとL画面が消去されます。ただし、実行してset -o vi+Ctrlを押すと、Lキーストロークが印刷されます(^L)。この動作を維持する方法はありますか?

答え1

Ctrl+ はLコマンドモードでもバインドされますが、vi挿入モードではバインドされません。clear-screen挿入モードにはデフォルトのバインディングはありません。 Readlineバインディングは次のように指定する必要があります~/.inputrc

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

これは通常モードと挿入モードで画面を消去するためにCtrl+をバインドします。Lもちろん、1つのモードでのみ使用したい場合は、そのオプションを削除してください。

設定するには、bash次の項目を使用してください~/.bashrc

set -o vi
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'

一つある広範なreadlineコマンドのリストこれを使用してbashシェルをカスタマイズできます。

答え2

次の行を次の行に入れますbashrc

bind -m vi-insert "\C-l":clear-screen

関連情報