Vi / vim - 从结束行删除,包括最终字符

时间:2012-03-01 14:50:37

标签: vim vi

我想做一些类似于这个问题VI (VIM): delete/change right to left?的事情,即从一行的末尾删除到该行中=的最后一个实例,这可以使用dT=并将光标置于该行的结尾。

然而,此命令和其他此类命令不会删除该行的最后一个字符,因此我必须向该命令添加x。我不介意这样做,但似乎令人惊讶的是vim没有从当前角色中删除的命令。有没有我找不到的?

5 个答案:

答案 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.
相关问题