我想做一些类似于这个问题VI (VIM): delete/change right to left?的事情,即从一行的末尾删除到该行中=的最后一个实例,这可以使用dT=
并将光标置于该行的结尾。
然而,此命令和其他此类命令不会删除该行的最后一个字符,因此我必须向该命令添加x
。我不介意这样做,但似乎令人惊讶的是vim没有从当前角色中删除的命令。有没有我找不到的?
答案 0 :(得分:8)
如果您的光标位于该行的末尾,则可以尝试
F=D
哦,没注意到OP想要保持'='。然后:
T=D
答案 1 :(得分:3)
或者,您可以:
set virtualedit=onemore
这将允许您将光标移动到行尾的一个字符。从那个位置,dT=
将按预期工作。
答案 2 :(得分:0)
使用T=d$
怎么样?那会有用吗?
答案 3 :(得分:0)
另一种方法是:set virtualedit=onemore
,以便您可以执行:$dT=
。
:help 've'
的参考资料。
答案 4 :(得分:0)
有点复杂,但更强大 - 我不确定你是打算一次做一行,还是很多...使用正则表达式替换。
single line:
^ # go to beginning of line
:s/=[^=]*$/=/ # remove everything after =
whole file:
:%s/=[^=]*$/=/gc # replace every instance in file, with prompts. remove c for no prompt.