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


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='.-'

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.