Z シェルの vi モードで挿入アクションの開始を確認する

Z シェルの vi モードで挿入アクションの開始を確認する

Zシェルのviモードを設定して、バックスペースで文字を削除できるようにすることは可能ですか?前に挿入アクションが開始された位置ですか?

基本的にvimの動作は、次の行を追加することで実現できます。~/.vimrc

set backspace=start

– これを Z シェルの vi モードで実行することは可能ですか?

答え1

これを zsh 設定に追加できます:

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

説明:

Viモードあらかじめ設定されたキーマップのセットです(ブドウヴィックマンヴィオプビジュアル)は特定のキーを特定のウィジェットにバインドします。これらのウィジェットのいくつかは、6 六編集者はそうします。

あなたの場合、これはデフォルトでvi-backward-delete-charバインドされているウィジェットですBackspaceブドウモードでは、挿入モードに入った位置を超えて削除しないという特別な機能があります。

これらのウィジッドには、より実際の動作に近い、わずかに異なるバージョンが存在することが多い。エマックエディタ。この場合、ウィジェットはbackward-delete-char現在の挿入セッションに限定されません。デフォルトではemacsモードbackward-delete-charどのモードでどのウィジェットを使用できるかについての厳しい制限はありません。viモードBackspace代わりにウィジェットを呼び出すように再バインドするだけですbackward-delete-char

と の2つのキー割り当てがある理由は、^?^H押すとどちらのキーシーケンスが送信されるかは端末によって異なるためですBackspace。デフォルトでは、どちらも同じウィジェットにバインドされています。viモード同様にemacsモード

関連情報