在vim中删除向上n行

65

在vim中,是否有一条命令可以删除n行向上的文本。

我知道可以使用4dd来向下删除4行文本。


1
您可以将d与任何运动命令结合使用。 - Don Reba
这与https://dev59.com/q2035IYBdhLWcg3wYO11#5460995非常相似,只需使用`:d`而不是`:y`。 - Peter Rincker
5个回答

97

3
好的,我会尽力进行翻译。原文的意思是:很好,我没注意到这点,但需要3dk,如果是4dk就要删除5行。 - Charles Keepax
7
我猜你的意思是“向上”。实际上,4dk会删除当前行和它之前的四行。 - Nicola Musatti
1
你说得对,3j是向下的... 我想我应该听取自己的建议并自己阅读文档! - chriskievit
2
@chriskievit,您可以编辑您的答案进行更正。只需点击其下方的编辑链接即可。 - johnny

17

V3kd可以完成此操作。

即先按 "V" 进入可视行选择模式,再按 "3k" 上移三行,最后按 "d" 删除选择的四行。


这是一个更准确的答案。4dk不是4dd的升级版本,而是4dj的升级版本,分别删除当前行上面和下面的4行,但不包括当前行。4dd实际上会将当前行连同下面3行一起删除。 - Frido Emans

8
您可以使用反向范围来完成此操作。
:-4,.d

删除从倒数第4行到当前行的内容。但这是一个ex模式命令。


2
d4k 一样,这会删除多余的一行。实际上你需要使用 :-3,.d 来删除当前行及其上面的三行。 - jw013

0
  1. 将光标定位到您想要开始剪切的位置。
  2. 按 v 键(如果您想要剪切整行,请按大写字母 V)。
  3. 将光标移动到您想要剪切的结尾处。
  4. 按 d 键。
  5. 移动到您想要粘贴的位置。
  6. 按 P 键在光标前粘贴,或按 p 键在光标后粘贴。

http://vim.wikia.com/wiki/Copy,_cut_and_paste


-12
  1. 站在最后一行的末尾
  2. 按住 Backspace 键,等待第一行的最后一个字符被删除

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