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モード。