在vim中,:d和dd有什么区别?

3

在vim的正常模式中,:+d+CRd+d有什么区别吗?

看起来前者是Ex命令,它们具有相同的效果。

2个回答

7
在Vim编辑器中,有一些命令只适用于可视模式,有些命令只适用于ex模式;但是有一些命令在两种模式下都可以使用。删除一行在两种模式下都可以实现。
在可视模式下,您可以通过三个可能的部分组合出一个命令:一个计数、一个命令和命令的对象。基本的删除命令是“d”,您可以将其与移动命令相结合:移动到下一个单词是“w”,删除到下一个单词是“dw”;移动到下一个段落是“}”,删除到下一个段落是“d}”等等。作为一种特殊快捷方式,“dd”可以删除一行。您可以使用“3dd”删除三行。但请注意,有很多方法可以删除行的一部分。
在ex模式下,删除命令只能操作整行。您可以在删除命令前加上行号以删除一系列行:“:1,10d<Enter>”将删除1到10行。您可以使用标记“b”标记一行,使用标记“e”标记另一行,然后像这样从一个行到另一个行进行删除:“:'b,'ed<Enter>”。您还可以在“d”后面跟随一个计数来删除当前的三行:“:d3<Enter>”。
在ex模式中,如果要在一行内进行操作,您需要使用“s”命令(替换)。要将“hamburger”更改为“hot dog”,您可以使用:“:s/hamburger/hot dog/<Enter>”。
从某种意义上说,ex模式先行。第一个编辑器叫做“ed”,而“ex”是“ed”的功能超集,然后添加了可视化编辑功能。

4
使用:d命令,你可以在其后加上整数来指定要删除的行数。使用dd命令,你只能删除一行。
例如,使用:d3将删除三行;当然,如果你只使用:d而没有数字跟随,则没有任何区别。
编辑:感谢steveha和BenjaminRH的澄清 - 原来你可以通过在dd前使用一个数字来进行删除。你也可以使用.来重复执行dd

3
你可以在 dd 前输入一个整数来指定要删除的行数。 - steveha
啊,我不知道那个。除了顺序之外,我也不确定差别在哪里... - kk415kk
3
另外,dd 可以与 . 结合重复使用。 - BenjaminRH
谢谢 - 真的很喜欢学习vim中的新东西 :-) - kk415kk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接