バックスペースが文字を削除できるようにZシェルのviモードを構成することは可能ですか前挿入アクションが開始された位置?
基本的に、~/.vimrc
に次の行を追加することで実現できるvimの動作
set backspace=start
–これをZ Shell viモードにすることは可能ですか?
これをzsh構成に追加できます。
bindkey -M viins '^?' backward-delete-char
bindkey -M viins '^H' backward-delete-char
Vi-modeは、事前設定されたキーマップのセットです(viins、vicmd、viopp、visual)特定のキーを特定のウィジェットにバインドします。これらのウィジェットの一部は、viエディターとほぼ同じように動作するように特別に設計されています。
あなたの場合、これはデフォルトでバインドされているvi-backward-delete-char
ウィジェットです。 Backspaceviinsモードでは、挿入モードに入った位置を超えて削除しないという特定の機能があります。
多くの場合、これらのウィジェットにはわずかに異なるバージョンが存在し、emacsエディターに沿って動作します。この場合、それはbackward-delete-char
ウィジェットになりますが、これは現在の挿入セッションに限定されません。デフォルトではemacs-modeにバインドされていますが、どのウィジェットをどのモードで使用できるかについての厳しい制限はありません。 vi-mode内でbackward-delete-char
を使用するには、単に再バインドするだけです。 Backspace 代わりにウィジェットをbackward-delete-char
と呼びます。
^?
と^H
の2つのバインディングがある理由は、これら2つのキーシーケンスのどちらを押すと送信されるかは端末に依存するためです。 Backspace。デフォルトでは、両方ともvi-modeとemacs-modeの同じウィジェットにバインドされています。