回顾 Z shell vi 模式中插入操作的开始

回顾 Z shell vi 模式中插入操作的开始

是否可以配置Z shell的vi模式,以便退格键可以删除字符插入操作开始的位置?

基本上 vim 的行为可以通过添加以下行来实现~/.vimrc

set backspace=start

– 是否可以在 Z shell vi 模式下使用此功能?

答案1

您可以将其添加到您的 zsh 配置中:

bindkey -M viins '^?' backward-delete-char
bindkey -M viins '^H' backward-delete-char

解释:

Vi模式只是一组预配置的键盘映射(维恩斯,维命令,维奥普,视觉的)将某些键绑定到某些小部件。其中一些小部件经过专门设计,其行为方式与编辑器确实如此。

在您的情况下,这是vi-backward-delete-char默认绑定到的小Backspace部件维恩斯模式,其特定功能是不删除进入插入模式的位置。

通常存在这些小部件略有不同的版本,其行为更符合emacs编辑。在这种情况下,它将是backward-delete-char小部件,它不限于当前插入会话。虽然它默认绑定在emacs 模式,对于哪个小部件可以在哪种模式下使用没有硬性限制。您可以backward-delete-char在以下范围内使用vi模式只需重新绑定Backspace即可调用小部件backward-delete-char

^?存在两个绑定 -和-的原因^H是它取决于终端,按下 时会发送这两个键序列中的哪一个Backspace。默认情况下,两者都绑定到同一个小部件vi模式emacs 模式

相关内容