C'è un modo per abilitare Ctrl + L per cancellare lo schermo quando è impostato 'set -o vi'?


54

Quando si preme Ctrl+ Lin modalità predefinita bash, lo schermo viene cancellato. Ma quando corro set -o vie premo Ctrl+ Lviene stampato il tasto ( ^L). C'è un modo per mantenere questo comportamento?

Risposte:


61

Ctrl+ Lè anche associato in modalità comando vi ma non in modalità inserimento. Non esiste alcun binding predefinito per clear-screenin modalità inserimento. I collegamenti readline devono essere specificati in ~/.inputrc, in questo modo:

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

Questo vincolerà Ctrl+ Lper cancellare lo schermo sia in modalità normale che in modalità inserimento. Naturalmente, se si preferisce utilizzarlo solo in una modalità, è sufficiente rimuovere l'opzione pertinente.

C'è un ampio elenco di comandi readline che puoi usare per personalizzare la tua shell bash.


1
per curiosità, perché preoccuparsi del comando vi se è già mappato? solo per completezza o c'è un motivo tecnico?
Ken Bellows,

2
@KenBellows per chiarezza, come da commenti (e avevo bisogno di un esempio nel blocco di comando vi per motivi puramente estetici).
Jasonwryan,

22

Inserisci questa riga nel tuo bashrc:

bind -m vi-insert "\C-l":clear-screen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.