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


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.