Bash

設置“set -o vi”時,有什麼方法可以啟用 Ctrl+L 來清除螢幕?

  • June 18, 2020

當您在 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以在正常和插入模式下清除螢幕。當然,如果您希望僅在一種模式下使用它,只需刪除相關選項即可。

如果您更願意將其設置為僅在 中bash使用以下等效項~/.bashrc

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

大量 readline 命令可用於自定義 bash shell。

引用自:https://unix.stackexchange.com/questions/104094