Nota che funzionerà nel terminale e nella modalità emacs predefinita (che stai usando se Ctrl+ Wcancella la parola precedente per te). Non funzionerà nella modalità vi di bash e non influenzerà vi / vim stesso. Questa è, quindi, solo una risposta parziale, ma la migliore che questo utente emacs può offrire.
Questo genere di cose è gestito dalla readline
libreria il cui comportamento può essere controllato tramite ~/.inputrc
. Modifica (o crea, se non esiste) ~/.inputrc
e aggiungi questa riga:
"\C-H":"\C-W"
Ora, apri un nuovo terminale e dovrebbe funzionare.
Spiegazione
In \C-H
realtà è Control+ BackSpace. Puoi vedere i codici chiave premendo Ctrl+ V, quindi il tasto che stai cercando. Vedrai che BackSpaceritorna ^H
.
Ora, dovrebbe essere possibile associare Control+ BackSpacealla funzione bash che elimina la parola precedente ( backward-kill-word
o unix-word-rubout
) usando "\C-H": backward-kill-word
. Tuttavia, non riesco a farlo funzionare. Funziona perfettamente con chiavi diverse ( "\C-E": backward-kill-word
ad esempio, fa Ctrl+ Ecancellare la parola precedente) ma per qualche motivo, non riesco a farlo funzionare BackSpace.
Quindi, per ovviare al problema, è sufficiente mappare Ctrl+ Backspacea Ctrl+ a Wcui è già stato mappato backward-kill-word
. Quindi, quando premi Ctrl+ Backspace, verrà tradotto in Ctrl+ Wche, a sua volta, invierà backward-kill-word
. Ho avuto l'idea per questa soluzione alternativa da questo post SU .