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

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

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

这是在命令之后

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

(编辑包括评论者的好补充:)

D或其等价的D $将删除该行的其余部分,并使您处于命令模式。C或C $将删除该行的其余部分并将您置于插入模式,新文本将被追加到该行。

这是vitutor和vimtutor的一部分,对于vim初学者来说是极好的“读物”。


在命令模式d$执行。


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


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


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

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


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

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

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

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

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


D或dd删除并复制该行到寄存器。您可以使用Vx,它只删除行,并保持在正常模式。