bashのデフォルトモードでCtrl+ を押すとL、画面がクリアされます。しかし、実行set -o vi
してCtrl+ を押すとL、キーストロークが印刷されます(^L
)。この動作を維持する方法はありますか?
bashのデフォルトモードでCtrl+ を押すとL、画面がクリアされます。しかし、実行set -o vi
してCtrl+ を押すとL、キーストロークが印刷されます(^L
)。この動作を維持する方法はありますか?
回答:
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シェルをカスタマイズするために使用できるreadlineコマンドの広範なリストがあります。