So konfigurieren Sie Strg + w als Löschwort in zsh

Antworten:

15

Hier ist ein Ausschnitt aus .zshrc, den ich verwendet habe:

my-backward-delete-word() {
    local WORDCHARS=${WORDCHARS/\//}
    zle backward-delete-word
}
zle -N my-backward-delete-word
bindkey '^W' my-backward-delete-word

Ich erinnere mich, dass dies die ursprüngliche Quelle war: http://www.zsh.org/mla/users/2001/msg00870.html

Joe
quelle
Vielen Dank! Ich habe diesen Code eingegeben ~/.zshrcund er funktioniert perfekt!
Eisen und
Die Standardschlüsselbindungstabelle emacsin ZLE bindet ^ W an backward-kill-wordund nicht an backward-delete-word.
JdeBP
10

Nur zu Ihrer Information, ich fand diese Lösung hier weitaus eleganter. Ich zitiere:

Eine andere Möglichkeit besteht darin, WORDCHARS(nicht alphanumerische Zeichen, die als Teil eines Wortes behandelt werden) auf etwas zu setzen, das nicht enthalten ist /.

Sie können dies auch optimieren, wenn Sie lieber ^wauf Punkt, Unterstrich usw. brechen möchten . In ~/.zshrcIch habe:

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'

UPDATE (2. März 2020)

Wie @Patryk in den Kommentaren unten hervorhob, funktioniert dies nicht für ZSH >= 5.7. Hier ist ein Update, das ich getestet habe und an dem ich arbeite zsh 5.8 (x86_64-apple-darwin18.7.0).

autoload -U select-word-style
select-word-style bash

export WORDCHARS='.-'
Anastasios Andronidis
quelle
Dies macht M-dweniger nützlich.
Zahnrot
1
Das funktioniert irgendwie nicht mehr mit zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk
@Patryk Danke, dass du es bemerkt hast! Ich habe meine Antwort aktualisiert!
Anastasios Andronidis