回顧 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 模式

相關內容