web-dev-qa-db-ja.com

zsh(viモード)でescを押した後、どうすれば「通常の」編集モードに戻ることができますか?

vi-modezshを使用しています。

通常モードに移行すると ESC その後、挿入モードに戻ります(たとえば、 i、 a または s)、ラインエディタは、文字の前の行の一部を「保護」します。これは、挿入モードに再び入るときに使用したものです。

で再バインドすることにより、バックスペース文字用に修正しました

bindkey "^?" backward-delete-char

しかし、^Wのように、そのままでは機能しない他のバインディングがまだあります(おそらく、それらはvi-*にバインドされているためです)。

私が正しく理解していれば、この動作はviに正常です。

非常に多くのキーを再バインドせずに、zlevimのように動作させる方法はありますか?

7
groxxda

AFAICT、問題のあるウィジェットは次のとおりです。

vi-backward-delete-char
vi-kill-line
vi-backward-kill-Word

だからあなたはすることができます

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
3