Beachten Sie, dass dies im Terminal und im Standard-Emacs-Modus funktioniert (den Sie verwenden, wenn Ctrl+ Wdas vorherige Wort für Sie löscht). Es funktioniert nicht im vi-Modus von bash und hat keinen Einfluss auf vi / vim. Dies ist daher nur eine teilweise Antwort, aber das Beste, was dieser Emacs-Benutzer bieten kann.
Diese Art von Dingen wird von der readlineBibliothek verwaltet, deren Verhalten über gesteuert werden kann ~/.inputrc. Bearbeiten (oder erstellen, falls nicht vorhanden) ~/.inputrcund fügen Sie diese Zeile hinzu:
"\C-H":"\C-W"
Öffnen Sie jetzt ein neues Terminal und es sollte funktionieren.
Erläuterung
Das \C-Hist eigentlich Control+ BackSpace. Sie können die Schlüsselcodes anzeigen, indem Sie Ctrl+ und Vdann die Taste drücken , nach der Sie suchen . Sie werden sehen, dass BackSpacezurückkehrt ^H.
Jetzt sollte es möglich sein, Control+ BackSpacean die Bash-Funktion zu binden , die das vorherige Wort ( backward-kill-wordoder unix-word-rubout) mit löscht "\C-H": backward-kill-word. Ich kann das jedoch nicht zum Laufen bringen. Es funktioniert perfekt mit verschiedenen Tasten ( "\C-E": backward-kill-wordz. B. macht Ctrl+ Elöscht das vorherige Wort), aber aus irgendeinem Grund kann ich es nicht zum Laufen bringen BackSpace.
So, wie dieses Problem zu umgehen, bilden wir nur Ctrl+ Backspacezu Ctrl+ W, die bereits zugeordnet ist backward-kill-word. Wenn Sie also Ctrl+ drücken Backspace, wird dies in Ctrl+ übersetzt, Wdas wiederum gesendet wird backward-kill-word. Die Idee für diese Problemumgehung habe ich in diesem SU-Beitrag erhalten .