I've seen that the vi mode option in zsh is rather limited.
For example, 'daw' (delete around word) and 'diw' don't work.
What is the reason and how can I solve it?
Because it's a
vimode, not avimmode.daw,diware vim-only and are not the most useful ones. You can do the same withbdw,bde– Stephane Chazelas
That being said you can use bindkey -s to bind one string to another:
bindkey -a -s "diw" "bde" bindkey -a -s "daw" "bdw" Now when you type diw bde is sent back.
-a is needed to add the binding to the vicmd mode.
Since version 5.0.8 zsh also supports vim style text objects. So daw and diw should work out of the box.
vimode, not avimmode.daw,diware vim-only and are not the most useful ones. You can do the same withbdw,bde