Como configurar Ctrl + w como excluir palavra no zsh

Respostas:

15

Aqui está um trecho de .zshrc que estou usando:

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

Lembro que essa era a fonte original: http://www.zsh.org/mla/users/2001/msg00870.html

Joe
fonte
Obrigado! Coloquei esse código ~/.zshrce ele funciona perfeitamente!
ironsand
A emacstabela de ligação de teclas padrão no ZLE vincula ^ W para, em backward-kill-wordvez de para backward-delete-word, note.
JDBP #
10

Apenas para sua informação, achei esta solução aqui muito mais elegante. Eu cito:

Outra opção é definir WORDCHARS(caracteres não alfanuméricos tratados como parte de uma palavra) como algo que não inclui /.

Você também pode ajustar isso se preferir ^wquebrar pontos, sublinhado, etc. Em ~/.zshrcEu tenho:

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

ATUALIZAÇÃO (2 / Mar / 2020)

Como o @Patryk apontou nos comentários abaixo, isso não funciona ZSH >= 5.7. Aqui está uma atualização que eu testei e trabalho zsh 5.8 (x86_64-apple-darwin18.7.0).

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

export WORDCHARS='.-'
Anastasios Andronidis
fonte
Isso torna M-dmenos útil.
Toothrot
1
De alguma forma, isso não funciona mais zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk
@ Patryk Obrigado por perceber! Eu atualizei minha resposta!
Anastasios Andronidis 02/03