zsh vimモードで複数の文字を置き換えると、バックスペースキーが期待どおりに機能しません。

zsh vimモードで複数の文字を置き換えると、バックスペースキーが期待どおりに機能しません。

次のタスクを実行したいと思います。コンソールのモードでバックスペースキーを使用して変更を元に戻しながら、vimいくつかの文字(vimコマンド)を置き換えます。次のように動作Rします。bashvim

bash
set -o vi
echo "foo bar" <ESC>

次に、「f」などのvimコマンドを使用して複数の文字を置き換えますFfRさて、例えば、文章を書くことでbar foo得ることができます。

echo "bar foo"

たとえば、バックスペースキーを3回押すとわかります。

echo "bar bar"

これが私が望む動作です。と同じ動作ですvim。しかし、私はzsh同様に試してみることができます。

zsh
bindkey -v
echo "foo bar" <ESC>

上記と同じことを行いますが、結果は次のとおりです。

echo "bar "

つまり、zshBACKSPACE を使用する場合、複数の文字を置き換える動作は期待どおりに機能しません。キャラクターを以前の状態に復元する代わりに削除します。

zshと同じ動作をどのように取得できますかvim

関連情報