Chcę usunąć słowo przez Ctrl+ Ww zshpolubieniu.
vim /foo/bar^W
vim /foo/
I znalazłem rozwiązanie dla bash, ale bindnie jest w funkcji zsh.
Czy można skonfigurować Ctrl-W (usunąć słowo)?
Jak mogę skonfigurować Ctrl+ Wjako delete-word?
Chcę usunąć słowo przez Ctrl+ Ww zshpolubieniu.
vim /foo/bar^W
vim /foo/
I znalazłem rozwiązanie dla bash, ale bindnie jest w funkcji zsh.
Czy można skonfigurować Ctrl-W (usunąć słowo)?
Jak mogę skonfigurować Ctrl+ Wjako delete-word?
Odpowiedzi:
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
~/.zshrci działa idealnie!
emacstabela powiązań klawiszy w ZLE wiąże ^ W z, backward-kill-worda nie z backward-delete-word, Uwaga.
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='*?_-.[]~=&;!#$%^(){}<>'
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='.-'
M-dmniej przydatnym.
zsh 5.7 (x86_64-apple-darwin18.2.0).