zsh: faz o ALT + BACKSPACE parar em caracteres não alfanuméricos

4

Em zsh por padrão, CTRL + w e ALT + Backspace parecem ter exatamente o mesmo efeito.

Como eu posso manter CTRL + w como está, e mudar ALT + Backspace para que pára em caracteres não alfanuméricos.

ou seja, quando o cursor estiver no final do seguinte comando: echo /aaa/bbb/ccc , pressionando CTRL + w deve deixar echo , enquanto pressiona ALT + Backspace deve deixar echo /aaa/bbb/ .

    
por 400 the Cat 02.10.2016 / 16:01

1 resposta

4

Na verdade, não vejo isso listado em ligações zsh, mas se bindkey mostrar você , ele será configurável vinculando a uma função definida por você.

Trabalhando com minha resposta em

    i use this bit contributed by someone on the list (Oliver Kiddle); check
    the archives from Mon, Oct. 8 for more info on this:

    tcsh-backward-delete-word () {
      local WORDCHARS="${WORDCHARS:s#/#}"
      zle backward-delete-word
    }

    i have it bound to control-W with:
    bindkey '^W' tcsh-backward-delete-word

    but you can change that obviously.

    i think that's what you're looking for, no?

    the '$WORDCHARS' variable is how zsh determines word boundaries so you
    could add '/' to that globally, however this might affect other things
    you want to leave it for, so i prefer this function.

Então: você pode usar $WORDCHARS como uma variável local em sua própria função, definindo as palavras como quiser e vinculando-as a uma chave arbitrária.

Quando você define sua função, não se esqueça de adicioná-la como keymap :

zle -N tcsh-backward-delete-word
    
por 02.10.2016 / 16:41