我希望能够删除我在VIM中光标位置开始的行的其余部分。有这么简单的命令吗?
为了帮助说明,这是在命令之前。
The quick brown dog jumps over the lazy fox.
^
|----- Cursor is here.
这是在命令
之后The q
^
|----- Cursor is here.
答案 0 :(得分:406)
(编辑包括评论者的好补充:)
D
或其等效的d$
将删除该行的其余部分,并使您处于命令模式。 C
或c$
将删除该行的其余部分,并将您置于插入模式,新文本将附加到该行。
这是vitutor
和vimtutor
的一部分,对于vim初学者来说非常“读”。
答案 1 :(得分:39)
使用 D 。有关详细信息,请参阅docs。
答案 2 :(得分:19)
您可能也对 C 感兴趣,它也会删除 D 之类的行尾,但此外它会使您在光标位置处于插入模式。
答案 3 :(得分:8)
在命令模式下执行d$
。
答案 4 :(得分:6)
按 ESC 首先进入command mode
。然后按 Shift + D 。
答案 5 :(得分:3)
这是一个非常老的问题,但是由于VIM仍然很重要,因此应澄清一些问题。
截至2018年10月,这里的每个答案和评论都提到了通常被称为“削减”行动的内容,因此,使用其中任何一项将取代VIM 未命名注册中的所有内容。该寄存器往往被视为默认的复制/粘贴剪贴板,因此,如果您要删除行的其余部分以将某些内容粘贴到同一位置,那么这些答案都将无法正常工作,因为随后删除的内容将被粘贴。代替以前被拉扯的东西。
OP上下文中真正的删除命令是"_D
(如果需要插入模式,则为"_C
),这会将删除的内容发送到黑洞寄存器,由"_
,此位置再也不会打扰(尽管您仍然可以使用u
撤消此操作)。
话虽如此,最后被撤销的内容都存储在 0寄存器中,即使将其替换为未命名的寄存器,也可以使用"0p
进行粘贴。
进一步了解the black hole register和registers in general,以获得更多的VIM乐趣!
答案 6 :(得分:3)
D
或dd
删除行并将其复制到寄存器中。您可以使用Vx
来删除该行,并保持其正常模式。