Comment configurer Ctrl + w comme mot de suppression dans zsh

Réponses:

15

Voici un extrait de .zshrc que j'utilise :

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

Je me souviens que c'était la source originale: http://www.zsh.org/mla/users/2001/msg00870.html

Joe
la source
Merci! J'ai mis ce code ~/.zshrcet cela fonctionne parfaitement!
ironsand
La emacstable de liaison de touches par défaut dans ZLE lie ^ W à backward-kill-wordplutôt qu'à backward-delete-word, note.
JdeBP
10

Juste pour votre information, j'ai trouvé cette solution ici beaucoup plus élégante. Je cite:

Une autre option consiste à définir WORDCHARS(caractères non alphanumériques traités comme faisant partie d'un mot) sur quelque chose qui ne comprend pas /.

Vous pouvez également modifier cela si vous préférez ^wrompre avec un point, un trait de soulignement, etc. Dans ~/.zshrcJ'ai:

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

MISE À JOUR (2 / mars / 2020)

Comme @Patryk l'a souligné dans les commentaires ci-dessous, cela ne fonctionne pas ZSH >= 5.7. Voici une mise à jour que j'ai testée et sur laquelle je travaille zsh 5.8 (x86_64-apple-darwin18.7.0).

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

export WORDCHARS='.-'
Anastasios Andronidis
la source
Cela rend M-dmoins utile.
Toothrot
1
Cela ne fonctionne plus en quelque sorte avec zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk
@Patryk Merci d'avoir remarqué! J'ai mis à jour ma réponse!
Anastasios Andronidis