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 readlinelibreria il cui comportamento può essere controllato tramite ~/.inputrc. Modifica (o crea, se non esiste) ~/.inputrce aggiungi questa riga:
"\C-H":"\C-W"
Ora, apri un nuovo terminale e dovrebbe funzionare.
Spiegazione
In \C-Hrealtà è 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-wordo unix-word-rubout) usando "\C-H": backward-kill-word. Tuttavia, non riesco a farlo funzionare. Funziona perfettamente con chiavi diverse ( "\C-E": backward-kill-wordad 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 .