Bash Readline löschen bis zum vorherigen Schrägstrich


15

Gibt es im Bash-Emacs-Modus eine Möglichkeit, bis zum vorherigen Schrägstrich zu löschen? Zum Beispiel, wenn ich den Befehl eingegeben habe cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathund nur die reallylongincorrectfolder.Ist da eine Verknüpfung? Dies ist ein sehr gewöhnliches Szenario für mich in der Bash. So etwas wie dF<char>in vi?

Antworten:


9
bind -P |grep unix-filename-rubout

Zum Testen der Tastenkombination mit z. Ctrl- b:

bind \\C-b:unix-filename-rubout

Für den dauerhaften Gebrauch fügen Sie es hinzu ~/.inputrc


2
So fügen Sie es ~/.inputrc, fügen Sie eine Zeile wie diese zu dieser Datei: "\C-b": unix-filename-rubout. Um den Effekt zu sehen, müssen Sie eine neue Bash-Shell starten (oder ein anderes Programm ausführen, das die GNU-Readline-Bibliothek verwendet).
Croad Langshan

11

Alt- Backspaceund Ctrl- wwerden üblicherweise zugeordnet backward-kill-word, was das tut. Wenn Sie herausfinden möchten, was auf Ihrem System zugeordnet ist (falls vorhanden), führen Sie das Programm aus bind -P | grep '^backward-kill-word'.

Wie von @Barmar erklärt , unterscheidet sich dies von unix-word-ruboutder vorherigen Raumgrenze .


Aber das wird das ganze Wort töten .. Ich möchte nur bis zum letzten Schrägstrich töten
Woodstok

Es wird hier nur bis zum letzten Schrägstrich entfernt. Schrägstrich ist eines der Standardworttrennzeichen. Bist du sicher, dass du Bash benutzt?
l0b0

Meine schlechte .. Alt-Backspace entfernt es bis zum letzten Schrägstrich. Was ist der Unterschied zwischen ALt-BackSpace und Strg-W?
Woodstok

3
Ctl-w ist normalerweise gebunden an unix-word-rubout: Töte das Wort hinter dem Punkt und benutze Leerzeichen als Wortgrenze.
Barmar

2
Das funktioniert nicht genau. Msgstr "Wörter bestehen aus alphanumerischen Zeichen (Buchstaben und Ziffern)". Daher hört es bei viel mehr als nur Schrägstrichen auf. Das Standard-Ungebunden unix-filename-ruboutist etwas besser, da es bei Leerzeichen und Schrägstrichen aufhört.
Sparhawk

6

Fügen Sie dies in Ihre ein .inputrcund starten Sie eine neue Shell:

C-b:unix-filename-rubout

Ctrl- blöscht jetzt rückwärts bis zum nächsten Schrägstrich.

Nirwana!

Vergessen Sie nicht Ctrl- XCtrl- Estartet Ihren Editor, damit Sie eine komplizierte Befehlszeile bequem bearbeiten können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.