Die Verknüpfung "Wort löschen" der Shell löscht zu viele Zeichen

9

Unter Bash hat mich ein Verhalten von Alt+ dseit Jahren verrückt gemacht und ich habe herausgefunden, dass es vielleicht mit einer Einstellung behoben werden könnte.

Wenn ich an einem Terminal bin und einen Befehl wie diesen gebe:

...$   cat >> ~/notesSuperLongFilename.txt

und dann, wenn ich zum Beispiel sagen möchte:

...$ scp ~/notesSuperLongFilename.txt

Ich möchte die "cat >> ~ / notesSuperLongFilename.txt" mit Strg + p (vorherige Zeile) zurückbekommen und dann Ctrl+ aund dann Alt+ dund Alt+ derneut tun, damit ich:

...$  ~/notesSuperLongFilename.txt

und dann könnte ich einfach "scp" eingeben und dann ein Ctrl+ machen m(oder Enter / Return drücken).

Es funktioniert jedoch nicht, da ich nach dem ersten Alt+ dbekomme:

...$ >> ~/notesSuperLongFilename.txt

(So ​​weit, ist es gut)

aber nach dem zweiten Alt+ dbekomme ich:

...$ .txt

Aus irgendeinem Grund Alt+ dlöscht + ">> ~ / notesSuperLongFilename" sofort, anstatt nur ">>" zu löschen .

Dies muss die größte Zeitverschwendung sein, die mich seit Jahren buchstäblich verrückt nach Linux / Bash macht.

Wie kann ich dieses (wohl kaputte) Verhalten von Alt+ beheben d?

PS: Ich weiß nicht, wer dafür "verantwortlich" ist Alt+ dVerhalten: Ich weiß nicht, ob es das Terminal oder die Shell ist (in meinem Fall Bash).

Cedric Martin
quelle
Geben Sie nach "cat >> ~ / notesSuperLongFilename.txt" "scp" und dann Esc ein. (Escape einmal und dann das "." Zeichen einmal)
Mathieu

Antworten:

3

Ich weiß nicht, wer für dieses Alt + d-Verhalten "verantwortlich" ist: Ich weiß nicht, ob es das Terminal oder die Shell ist (in meinem Fall Bash).

Dies bashist insbesondere das Standard-Setup für die Befehlszeilenbearbeitung. Hier ist eine schöne Seite darüber, welche Befehle gebunden werden können und wie die Standardbindungen geändert werden.

Die Standardbindung für Alt-dlautet kill-wordwie der gleichnamige Befehl in Emacs. Wie Sie jedoch festgestellt haben, ist dies nicht der Fall. Emacs würde den Abstand zwischen >>und der Tilde in Ihrem Beispiel als Wortumbruch betrachten . Das bashtut ich nicht, ich würde einen Fehler in Betracht ziehen. bashIch weiß nicht, was Sie tun können , ohne die Quelle zu finden , zu ändern und neu zu kompilieren.

dodgethesteamroller
quelle
1
Dies scheint ein Fehler zu sein. Ich würde es dem Bash-Team melden.
Ernie