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.