我想要执行以下操作:在控制台中,在vim
模式下,替换几个字符( vim 命令R
),同时能够使用退格键恢复更改。其bash
工作原理与以下相同vim
:
bash
set -o vi
echo "foo bar" <ESC>
现在回退到用 vim 命令说“f”,例如Ff
,然后R
替换多个字符。我现在可以写例如bar foo
,然后我得到
echo "bar foo"
现在按退格键例如三次,然后我明白了
echo "bar bar"
这就是我想要的行为,与 中的行为相同vim
。但是,在 中zsh
,我可以类似地尝试:
zsh
bindkey -v
echo "foo bar" <ESC>
执行与上面相同的操作,但以以下方式结束:
echo "bar "
简而言之:zsh
使用 BACKSPACE 时,替换多个字符的行为无法按预期工作。不是将字符恢复到之前的状态,而是将其删除。
zsh
我怎样才能得到与 中相同的行为vim
?