Come configurare Ctrl + w come elimina la parola in zsh


Risposte:


15

Ecco uno snippet di .zshrc che ho usato:

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

Ricordo che questa era la fonte originale: http://www.zsh.org/mla/users/2001/msg00870.html


Grazie! Ho inserito questo codice ~/.zshrce funziona perfettamente!
Feronsand,

La emacstabella di associazione chiave predefinita in ZLE associa ^ W backward-kill-wordpiuttosto che a backward-delete-word, nota.
JdeBP,

10

Solo per vostra informazione, ho trovato questa soluzione qui di essere molto più elegante. Quoto:

Un'altra opzione è quella di impostare WORDCHARS(caratteri non alfanumerici trattati come parte di una parola) su qualcosa che non include /.

Puoi anche modificarlo se preferisci ^wrompere punti, trattini bassi, ecc. In ~/.zshrcI have:

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

AGGIORNAMENTO (2 / Mar / 2020)

Come ha sottolineato @Patryk nei commenti qui sotto, questo non funziona ZSH >= 5.7. Ecco un aggiornamento che ho testato e su cui lavoro zsh 5.8 (x86_64-apple-darwin18.7.0).

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

export WORDCHARS='.-'

Questo rende M-dmeno utile.
Toothrot,

1
Questo in qualche modo non funziona più con zsh 5.7 (x86_64-apple-darwin18.2.0).
Patryk,

@Patryk Grazie per averlo notato! Ho aggiornato la mia risposta!
Anastasios Andronidis il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.