Czy jest jakiś sposób, aby włączyć Ctrl + L, aby wyczyścić ekran, gdy ustawione jest „set -o vi”?


54

Po naciśnięciu przycisku Ctrl+ Lw domyślnym trybie bash ekran zostanie wyczyszczony. Ale kiedy uruchamiam set -o vii naciskam Ctrl+, Lnaciśnięcie klawisza jest drukowane ( ^L). Czy jest jakiś sposób na zachowanie tego zachowania?

Odpowiedzi:


61

Ctrl+ Ljest również związany w trybie komend vi, ale nie w trybie wstawiania. W clear-screentrybie wstawiania nie ma domyślnego wiązania . Powiązania readline powinny być określone w następujący ~/.inputrcsposób:

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

Spowoduje to powiązanie Ctrl+, Laby wyczyścić ekran zarówno w trybie normalnym, jak i wstawiania. Oczywiście, jeśli wolisz używać go tylko w jednym trybie, po prostu usuń odpowiednią opcję.

Istnieje obszerna lista poleceń readline , których można użyć do dostosowania powłoki bash.


1
z ciekawości, po co zawracać sobie głowę komendą vi, jeśli jest już zmapowana? tylko ze względu na kompletność, czy może istnieje powód techniczny?
Ken Bellows,

2
@KenBellows dla jasności, zgodnie z komentarzami (i potrzebowałem przykładu w bloku polecenia vi ze względów czysto estetycznych).
jasonwryan

22

Umieść tę linię w bashrc:

bind -m vi-insert "\C-l":clear-screen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.