Ho letto una serie di risposte a domande simili sia in questo forum che altrove, ma non riesco a farlo funzionare per me.
Sto cercando di rimappare Ctrl +C per eliminare la parola avanti piuttosto che indietro. So che posso usare Esc +D fallo, ma questo è anche un esercizio di apprendimento per me.
Usando quello che ho letto, ho aggiunto quanto segue in ~/.inputrc
:
$include /etc/inputrc
Control-w: kill-word
- La prima riga è, a quanto pare, richiesta se voglio includere gli altri binding.
- Per il secondo, ho provato
Control-w
e"\C-w"
e per il comando ho provatokill-word
eshell-kill-word
. - Per provare le modifiche ho provato
bind -f ~/.inputrc
, Ctrl +X , Ctrl +R ,bash -l
e semplicemente aprendo un nuovo terminale.
Presumo di aver perso qualche passaggio importante, o semplicemente di aver frainteso, ma sto finendo le idee.
Sono su Centos 8.
Risposta accettata:
La libreria readline (che è ciò che inputrc
configures) imposta i collegamenti corrispondenti ai collegamenti del driver del terminale per l'input cotto. Queste sono comunemente conosciute come chiavi stty perché possono essere configurate con il comando stty
. Ctrl +C è l'associazione per eliminare la parola precedente (werase
) nell'interfaccia del terminale cotto.
Tali collegamenti hanno la precedenza sui collegamenti espliciti in .inputrc
. Per disattivare questo comportamento, aggiungi questa riga al tuo .inputrc
:
set bind-tty-special-chars off
Se non hai configurato associazioni di tasti del terminale non predefinite con stty
, penso che questo non influirà sui tuoi binding bash.