zsh forward-word acts a bit different from bash/emacs, and I'd like to change that.
Instead of description of all differences, let me just show you step by step behaviour of bash. I marked cursor as "^" symbol.
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
This algorithm is both flexible for moving through words, removing parts of them for me. Also it's in emacs, so I'm used to it. I'd like to see it in zsh too. Thanks.