Bash: Ändern von Strg+w…

… , sodass Teile eines Pfades gelöscht werden anstatt ganzer Wörter.

Wer gerne in der bash arbeitet und mit dem Tastenkürzel Strg+w komplette Wörter links des Cursors löscht, dem könnte der folgende Schmankerl gefallen.

set bind-tty-special-chars off
"\C-w": unix-filename-rubout

Diese beiden Zeilen müssen der inputrc hinzugefügt werden. Dazu kann entweder die systemweite (bei Debian z.B.) /etc/inputrc oder aber die benutzerspezifische ~/.inputrc genutzt werden.

Nun noch der Vorher-Nachher-Vergleich. Als Beispiel-Input nehme ich die folgende Zeile:

cd /home/strubbl/

Wenn man nun Strg+w vor der Änderung nutzt, wirkt es wie folgt:

cd 

Der komplette Pfad wurde gelöscht.

Mit der Änderung in der inputrc kann man nun auch Teile des Pfades löschen. Die einmalige Benutzung des Tastenkürzels bewirkt:

cd /home/

Wie praktisch, find ich!

Habe mich eben auch noch von frakturfreak aufklären lassen, dass es sich bei Strg+w und Strg+y um ein Konzept namens einen Kill-Ring handelt (, das vom Emacs stammt) – quasi eine Zwischenablage für Textpassagen darstellt. Nett!

Woher ich das habe? phrakture ist schuldig und zeigt auf seinen Git-Diff.