在 zsh(vi 模式)中按 esc 后如何回到“正常”编辑模式?

gro*_*xda 7 zsh vi-mode zle

我正在使用zshvi-mode

当我进入正常模式ESC然后回到插入模式(例如使用i,as)时,行编辑器会“保护”字符前面的行部分,当我重新进入插入模式时.

我通过重新绑定它为退格字符修复了它

bindkey "^?" backward-delete-char
Run Code Online (Sandbox Code Playgroud)

但是仍然有其他类似的绑定^W不能开箱即用(可能是因为它们绑定到vi-*)。

如果我理解正确,这种行为对于vi.

有没有办法让zle行为像vim而不必重新绑定这么多键?

Sté*_*las 3

AFAICT,唯一有问题的小部件是:

vi-backward-delete-char
vi-kill-line
vi-backward-kill-word
Run Code Online (Sandbox Code Playgroud)

所以你可以做

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
Run Code Online (Sandbox Code Playgroud)