删除Vim中的文本块

删除Vim中的文本块,vim,Vim,所以我可以使用dd(正常模式)删除一个文本+行,下面的所有文本向上移动一行 我可以使用Ctrl+v进入视觉模式 如果我接着说do0C+vjjj$d则删除4行文本,但不删除行 如何删除一块文本并同时删除行,使前面的文本行移到光标上?对于类似的内容,我通常使用shift+v、jjj…d,但您也可以使用文本对象进行删除。 请参见:h文本对象。举几个例子: di”-删除“ dap-删除段落周围的内容 当然,您可以使用d以外的其他命令,例如c或v 我一直使用的是ci(和ci“),用于编辑()和中的内容 更

所以我可以使用dd(正常模式)删除一个文本+行,下面的所有文本向上移动一行

我可以使用Ctrl+v进入视觉模式

如果我接着说do
0
C+v
jjj
$
d
则删除4行文本,但不删除行


如何删除一块文本并同时删除行,使前面的文本行移到光标上?

对于类似的内容,我通常使用shift+v、jjj…d,但您也可以使用文本对象进行删除。
请参见
:h文本对象
。举几个例子:

di”
-删除

dap
-删除段落周围的内容

当然,您可以使用
d
以外的其他命令,例如
c
v

我一直使用的是
ci(
ci“
),用于编辑
()
中的内容

更多使用文本对象和视觉模式的酷例子可以在这里找到:



您也可以使用,即FDinoff提到的
4dd
,或者Jens提到的范围。但是在大多数情况下,我个人认为使用可视线(shift+v)更灵活,您无需计算行数或其他任何内容。它很容易记住,您可以立即看到结果,您不会错过计算行数,即使您位于屏幕的顶部/底部,它也可以工作。

使用
4dd
删除4行文本


使用逐行可视块。
然后移动到要删除的最后一行,然后按
d

如果块非常大,并且您不必费心计算要删除的行数,但您知道第一行和最后一行的行号(
:set number
帮助),您可以始终转到ex模式并

 :3,1415d
从第3行到第1415行进行删除。

将您置于“视觉块模式”。在该模式下,您对一个矩形(“视觉块模式”中的“块”)进行操作,该矩形可能覆盖或可能不覆盖要删除的行。
d
仅对该块中包含的字符进行操作,使行保持原样


您需要的是“可视线路模式”,您可以在该模式下对线路进行特定操作。在正常模式或任何其他可视模式下,点击
V
(Shift+V),移动光标以定义您的选择,然后点击
d

或移动
d
,例如

d3j

另外,
:d
命令也很灵活。有关详细信息,请查看帮助

删除4行文本,从光标所在的行开始:

4dd
或者使用带有行寻址的ex命令d,例如:

:3,24d 
将删除第3-24行

以下是使用ex行寻址时一些有用的特殊字符:

 .       : current line
 $       : last line
 /text/  : next occurrence of text
 ?text?  : previous occurrence of text
 *       : all text currently on screen
 %       : entire file
 +n      : next n lines
 -n      : previous n lines

你可以用书上的记号。用书上的记号标记第一行,说‘e’ 在命令模式下(在插入模式下按ESC键)按

它用书签“e”标记第一行

然后转到要删除的最后一行 并将其标记为书签,并说“f”

m f
然后可以转到ex模式(使用冒号)并删除行

:'e,'f d

@hammar-我如何将OP中的
C+v
转换成小按钮的图片-我在一些帖子上看到了它?使用
..
标记,例如
Ctrl+v
。但是不要做得太过分。长的Vim命令通常更容易用普通的代码标记阅读。@hammar-好的-我确实有做得太过火的倾向(检查timss的答案……这样可以吗?还是做得太过分了?)我想说这有点过分了。但这当然是主观的。不管怎样,我们现在离题了。继续问你是否需要更多的意见。4dd是一个显而易见的简单答案-谢谢!似乎只是
v
,然后选择行并按
d
也可以-我的错误是使用了
C+v
+1谢谢at reference-启动并保存以稍后阅读格式化的道具,尽管我认为通常最好使用Vim命令的常规符号,而不是
标记。没有未移动的
键或
键,所以对他们使用
真的没有意义。@timss-一些标记会很好-我想你可能反应过度了!@whytheq我真的不知道什么是最好的,因为
d
等既是一个命令,也是一个映射。无论如何,我认为现在一切都好了。@timss-尽管标记疯狂,我还是最好标记一下s作为答案+1很好的总结-这是我的错误,这是我的解决方案(正常模式下的4dd可能是最简单的解决方案…尽管对我练习视觉线条模式有好处)
:'e,'f d