Jak skonfigurować Ctrl + W jako usunięcie słowa w Zsh


Odpowiedzi:


15

Oto fragment kodu .zshrc, którego używałem :

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

Pamiętam, że to było oryginalne źródło: http://www.zsh.org/mla/users/2001/msg00870.html


Dzięki! Wstawiłem ten kod ~/.zshrci działa idealnie!
ironsand

Domyślna emacstabela powiązań klawiszy w ZLE wiąże ^ W z, backward-kill-worda nie z backward-delete-word, Uwaga.
JdeBP,

10

Dla twojej informacji znalazłem tutaj to rozwiązanie , które jest o wiele bardziej eleganckie. Cytuję:

Inną opcją jest ustawienie WORDCHARS(znaki niealfanumeryczne traktowane jako część słowa) na coś, co nie obejmuje /.

Możesz również dostosować to, jeśli wolisz ^włamać kropki, podkreślenia itp. W ~/.zshrcMam:

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

AKTUALIZACJA (2 / Mar / 2020)

Jak zauważył @Patryk w komentarzach poniżej, to nie działa ZSH >= 5.7. Oto aktualizacja, którą przetestowałem i nad którą pracuję zsh 5.8 (x86_64-apple-darwin18.7.0).

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

export WORDCHARS='.-'

To czyni M-dmniej przydatnym.
Toothrot

1
To jakoś już nie działa zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk

@Patryk Dzięki za zauważenie! Zaktualizowałem swoją odpowiedź!
Anastasios Andronidis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.