zsh forward-word si comporta in modo un po 'diverso da bash/emacs, e mi piacerebbe cambiarlo.Come rendere il comportamento di zsh forward-word come in bash/emacs
Invece di una descrizione di tutte le differenze, lascia che ti mostri il comportamento passo passo di bash. Ho contrassegnato il cursore come simbolo "^".
foo bar --non-needed-param --needed-param^
M-b
foo bar --non-needed-param --needed-^param
M-b
foo bar --non-needed-param --^needed-param
M-b
foo bar --non-needed-^param --needed-param
M-b
foo bar --non-^needed-param --needed-param
M-b
foo bar --^non-needed-param --needed-param
M-b
foo ^bar --non-needed-param --needed-param
M-f
foo bar^ --non-needed-param --needed-param
M-d
foo bar^-needed-param --needed-param
M-d
foo bar^-param --needed-param
M-d
foo bar^ --needed-param
Questo algoritmo è sia flessibile per muoversi attraverso parole, rimuovendo parti di loro per me. Inoltre è in emacs, quindi ci sono abituato. Mi piacerebbe vederlo anche in zsh. Grazie.
Grazie! Ma in realtà si comporta diversamente da bash (ho fatto qualcosa di sbagliato?). In questa situazione: "fo^ooo --bar", se premi "Mf", dovrebbe andare immediatamente alla fine di foooo, come questo: "foooo^--bar", ma ho abilitato come hai mostrato, sarà vai a questo: "foooo -^bar". In realtà sembra che questo plugin esporti solo WORDCHARS = ''. –
La mia configurazione completa di zsh funziona come vuoi tu, quindi credo di aver fatto qualcosa di più di quello che ho affermato nella mia risposta. Il mio WORDCHARS contiene molti altri caratteri sebbene non riesca a capire dove è effettivamente impostato: ($ WORDCHARS è '*? _-. [] ~ =/&;! # $% ^() {} <>') –
OK, ha ricordato che cosa lo ha fatto funzionare e ha aggiornato la mia risposta di conseguenza. –