我希望能够删除我在VIM中从光标的位置开始的行其余部分。是否有一个简单的命令可以做到这一点?

为了便于说明,这是在命令之前。

The quick brown dog jumps over the lazy fox.
     ^
     |----- Cursor is here.

这是在命令之后

The q
     ^
     |----- Cursor is here.

当前回答

你可能对C也感兴趣,它也会像D一样删除行尾,但除此之外,它会在光标位置将你置于插入模式。

其他回答

这是一个非常古老的问题,但由于VIM仍然相关,因此应该澄清一些事情。

截至2018年10月,这里的每个回答和评论都提到了通常被称为“cut”的操作,因此使用其中任何一个都将取代目前VIM未命名寄存器中的任何内容。这个寄存器倾向于被当作一个默认的复制/粘贴剪贴板,所以如果你删除一行的其余部分,然后在相同的地方粘贴一些东西,这些答案都不会像你想要的那样工作,因为刚刚删除的东西随后会被粘贴在之前删除的地方。

OP上下文中的真正删除命令是“_D(如果需要插入模式,则为“_C”)。它将删除的内容发送到黑洞寄存器,由“_”指定,在那里它将不会再打扰任何人(尽管您仍然可以使用u撤消此操作)。

也就是说,无论最后拉出的是什么,它都存储在0寄存器中,即使它在未命名的寄存器中被替换,它仍然可以使用“0p. 0”进行粘贴。

了解更多关于黑洞寄存器和寄存器一般额外的VIM乐趣!

首先按ESC键进入命令模式。然后按Shift+D。

https://www.fprintf.net/vimCheatSheet.html

你可能对C也感兴趣,它也会像D一样删除行尾,但除此之外,它会在光标位置将你置于插入模式。

请参阅文档以获得更多信息。

在命令模式d$执行。