I'm using zsh in vi-mode.

When I go to normal mode with ESC and then back into insert mode (for example using i, a or s), the line editor kind of "protects" the part of the line in front of the char, at which I was when re-entering insert mode.

I fixed it for the backspace char by rebinding it with

bindkey "^?" backward-delete-char

But there are still other bindings like ^W that don't work out of the box (probably because they are bound to vi-*).

If I understand it correctly, this behavior is normal to vi.

Is there's a way to make zle behave like vim without having to rebind so many keys?


AFAICT, the only problematic widgets are:


So you could do

zle -A kill-whole-line vi-kill-line
zle -A backward-kill-word vi-backward-kill-word
zle -A backward-delete-char vi-backward-delete-char

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.