当您在 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以在正常和插入模式下清除屏幕。当然,如果您只想在一种模式下使用它,只需删除相关选项即可。
如果您希望设置它只是为了bash
使用以下等效项~/.bashrc
:
set -o vi
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'
有一个广泛的 readline 命令列表您可以使用它来自定义您的 bash shell。
答案2
将此行放入您的bashrc
:
bind -m vi-insert "\C-l":clear-screen