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_path
und 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?
15
~/.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).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 ausbind -P | grep '^backward-kill-word'
.Wie von @Barmar erklärt , unterscheidet sich dies von
unix-word-rubout
der vorherigen Raumgrenze .quelle
unix-word-rubout
: Töte das Wort hinter dem Punkt und benutze Leerzeichen als Wortgrenze.unix-filename-rubout
ist etwas besser, da es bei Leerzeichen und Schrägstrichen aufhört.Fügen Sie dies in Ihre ein
.inputrc
und 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.
quelle