Wie kann ich in der Befehlszeile (Bash und Zsh) ein Wort rückwärts löschen?

Wie kann ich in der Befehlszeile (Bash und Zsh) ein Wort rückwärts löschen?

Wie kann ich in der Befehlszeile ein Wort rückwärts löschen? Ich bin es gewohnt, dass manche Editoren das letzte „Wort“ mit Ctrl+ löschen Backspace, und diese Funktion hätte ich auch gerne in der Befehlszeile.

Ich verwende momentan Bash und obwohl ich ein Wort zurückspringen und dann ein Wort vorwärts löschen könnte, hätte ich dies lieber als Schnelltaste oder als Ereignis als Ctrl+ Backspace.

Wie kann dies erreicht werden?

Antwort1

Ctrl+ Wist das Standard-„Killwort“ (auch bekannt als werase). Ctrl+ Ukillt die ganze Zeile ( kill).

Diese können Sie mit ändern stty.

-bash-4.2$ stty -a
speed 38400 baud; 24 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc -xcase
iflags: -istrip icrnl -inlcr -igncr -iuclc ixon -ixoff ixany imaxbel
        -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -onocr -onlret -olcuc oxtabs -onoeot
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
        eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = <undef>;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;
-bash-4.2$ stty werase ^p
-bash-4.2$ stty kill ^a
-bash-4.2$

Beachten Sie, dass man nicht das eigentliche Steuerzeichen in die Zeile setzen muss, sondern erst das Zeichen sttyeingibt, ^das man mit Steuer drücken würde.

Wenn ich das gemacht habe und Ctrl+ drücke P, wird ein Wort aus der Zeile gelöscht. Und wenn ich Ctrl+ drücke A, wird die ganze Zeile gelöscht.

Antwort2

Alt+ Backspacefunktioniert für mich in Bash und Zsh.

Antwort3

Sie können dies auch mit tun CtrlW.

Eine andere Möglichkeit besteht darin, eine eigene Verknüpfung festzulegen. Dies hängt jedoch vom verwendeten Terminalemulator ab. Für xtermund rxvtund möglicherweise andere fügen Sie diese Zeile zu Ihrer hinzu ~/.inputrc(erstellen Sie die Datei, falls sie nicht vorhanden ist):

## rxvt, xterm
"\b":backward-kill-word

gnome-terminalund seinesgleichen scheinen AltBackspacestandardmäßig zu haben, aberscheinbarerfordern, dass Sie einen Patch durchführen, readline()um ihn zu erhalten CtrlBackspace.

Siehe auch:

Antwort4

Überraschenderweise funktioniert esces deleteauch unter macOS.

Auch bei VerwendungiTerm2können Sie die Standardeinstellung aktualisierenProfil:

Keys > Key Mapping > Presets > Natural Text Editing

verwandte Informationen