Zsh backward-delete-word não reconhece o caractere “/”

4

Eu quero que o ctrl-W no Zsh pare quando encontrar o caractere "/". Eu tenho o seguinte no meu arquivo .zshrc, mas ele não pára em "/". O que está acontecendo?

default-backward-delete-word () {
  local WORDCHARS="*?_[]~=/&;!#$%^(){}<>"
  zle backward-delete-word
}
zle -N default-backward-delete-word
bindkey '^W' default-backward-delete-word
    
por yong 03.12.2014 / 07:02

1 resposta

6

O problema é que / faz parte do seu WORDCHARS .

De acordo com zshparam(1) :

WORDCHARS <S>

A list of non-alphanumeric characters considered part of a word by the line editor.

Portanto, se você quiser que o zsh considere / como separador de palavras, ele não deve estar em WORDCHARS . Eu também sugeriria usar aspas simples em vez de aspas duplas ao defini-lo - especialmente porque há um $ nele, o que pode levar a expansões indesejadas.

local WORDCHARS='*?_[]~=&;!#$%^(){}<>'
    
por 03.12.2014 / 07:13

Tags