Chcę usunąć słowo przez Ctrl+ Ww zsh
polubieniu.
vim /foo/bar^W
vim /foo/
I znalazłem rozwiązanie dla bash
, ale bind
nie 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 zsh
polubieniu.
vim /foo/bar^W
vim /foo/
I znalazłem rozwiązanie dla bash
, ale bind
nie 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
~/.zshrc
i działa idealnie!
emacs
tabela powiązań klawiszy w ZLE wiąże ^ W z, backward-kill-word
a 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~/.zshrc
Mam: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-d
mniej przydatnym.
zsh 5.7 (x86_64-apple-darwin18.2.0)
.