我正在使用 Vim 编辑 C 代码,我喜欢使用c<movement>
它来快速更改文件的某些部分。c2W
特别是,我发现“更改两个以空格分隔的单词”之 类的东西很有用。
但是有一个用例让我无法理解:当我的光标位于单词的最后一个字符时cb
,“更改回一个单词”命令不会删除我要编辑的单词的最后一个字符。这是有道理的,因为从技术上讲,光标在最后一个字符之前,但这不是我想要的。
这是发生的事情,光标由 指示|
:
从...开始:
This is just a typ|ical series of words
我想将“典型”改为“不同”。我按e
:
This is just a typica|l series of words
然后cb
:
This is just a |l series of words
现在l
剩下一个悬挂(小写的L,要清楚)!那不是我想要的。
更精明的你已经注意到,在这个例子中我可以简单地使用组合bcw
,这会将我的光标放在单词的开头,然后改变整个单词。真的!但是,如果我想将“单词”更改为“字符串”怎么办?
从...开始:
This is just a typ|ical series of words
我想将“单词”更改为“字符串”。我按$
:
This is just a typical series of word|s
同样的问题!按下cb
会留下一个悬挂的“s”(尽管在这个例子中这很好,因为“strings”无论如何都以“s”结尾)。当然,我可以按bcw
,但这是一个额外的键,因此是不可接受的。
我只需要忍受这种难以置信的困难吗?