在vim中,我经常发现自己删除(或复制)大块的文本。人们可以数一数文本的行数,并说(例如)50dd来删除50行。

但是如何在不知道要删除多少行的情况下删除这么大的文本块呢?


当前回答

回到起跑线,输入ma(标记“a”)。然后转到最后一行,输入d'a(删除以标记“a”)。

这将删除从当前到标记的所有行(包括)。它还兼容vi和vim,如果您的环境不支持后者的话。

其他回答

我不是vim大师,但我在这种情况下使用的是“可视模式”。在命令模式下,输入V(大写)。然后向上/向下移动以突出显示要删除的块(所有常用的移动命令都有效)。然后用x或d去掉它。

您可以将光标放在块的开头或结尾,并进入可视模式(shift-v)。然后简单地向上或向下移动,直到所需的块突出显示。最后,通过按y复制文本或按d剪切文本。

有几种可能,哪种最好取决于你处理的文本。

我想到了两种可能:

切换到可视模式(V, S-V, ),用光标选择文本 移动并按d 用:dap删除整个段落

这取决于那个大的方块是什么。也许你只是想删掉一段话,在这种情况下删减一下就可以了。

如果你通过set number打开行号,你可以简单地dNNG,它将从当前位置删除到行NN。因此,您可以导航到您希望删除的行开头,并简单地d50G,假设这是您希望删除的最后一行。