How to enable ‘daw’ vi command in zsh

vizsh

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?

Best Answer

Because it's a vi mode, not a vim mode. daw, diw are vim-only and are not the most useful ones. You can do the same with bdw, 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.

Update for zsh version ≥ 5.0.8

Since version 5.0.8 zsh also supports vim style text objects. So daw and diw should work out of the box.

Related Question