Cómo configurar Ctrl + w como eliminar palabra en zsh

Respuestas:

15

Aquí hay un fragmento de .zshrc que he estado usando:

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

Recuerdo que esta fue la fuente original: http://www.zsh.org/mla/users/2001/msg00870.html

Joe
fuente
¡Gracias! Puse este código ~/.zshrcy funciona perfectamente.
ironsand
La emacstabla de vinculación de teclas predeterminada en ZLE vincula ^ W a, en backward-kill-wordlugar de a backward-delete-word, nota.
JdeBP
10

Solo para su información, encontré que esta solución aquí es mucho más elegante. Yo cito:

Otra opción es establecer WORDCHARS(caracteres no alfanuméricos tratados como parte de una palabra) en algo que no incluye /.

También puede ajustar esto si prefiere ^wromper en punto, guión bajo, etc. En ~/.zshrctengo:

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

ACTUALIZACIÓN (2 / Mar / 2020)

Como @Patryk señaló en los comentarios a continuación, esto no funciona ZSH >= 5.7. Aquí hay una actualización que probé y en la que trabajo zsh 5.8 (x86_64-apple-darwin18.7.0).

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

export WORDCHARS='.-'
Anastasios Andronidis
fuente
Esto lo hace M-dmenos útil.
Toothrot
1
Esto de alguna manera ya no funciona zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk
@Patryk ¡Gracias por notarlo! ¡Actualicé mi respuesta!
Anastasios Andronidis