50dd
来删除50行。但是,如果不知道要删除多少行文本,该如何删除这个大块文本呢?
50dd
来删除50行。请前往起始行输入ma(标记"a")。然后跳转到最后一行,输入d'a(删除至标记"a")。
这样将会删除所有当前行到标记行之间的行(包括标记行)。此方法适用于vi
和vim
编辑器,如果您的环境不支持后者,则也可以使用前者。
/var/mail/username
中的邮件,并保留最后的邮件。我做一个标记,然后输入例如50000
,接着输入gg
跳转到第50,000行,然后删除所有中间的行。非常好用! - otmezgervim
作为编辑千兆字节文件的工具 - 我倾向于选择像awk
和它的同类文本处理工具 :-) - paxdiablo我不是vim大师,但在这种情况下我使用的是“可视模式”。在命令模式下,输入V
(大写)。然后使用上下移动键来突出显示您想要删除的块(所有常用的移动命令都有效)。然后使用x
或d
删除它。
.vimrc
中的一些设置使它出问题了? - MatCTRL
-v
)和Visual Block(Shift
-v
)。 - Justin Ethier你也可以使用可视模式(某些命令也适用于删除选项)。
vip vap 选择段落,v2ap 选择两个段落。
dap 可以删除,d2ap 也可以。你可以在 [
]
块中删除,例如 da[
类型的对象参考自 vim 文档:第 4 节。链接为:http://vimdoc.sourceforge.net/htmldoc/visual.html
4. Operating on the Visual area *visual-operators*
...
The objects that can be used are:
aw a word (with white space)
iw inner word
aW a WORD (with white space)
iW inner WORD
as a sentence (with white space)
is inner sentence
ap a paragraph (with white space)
ip inner paragraph
ab a () block (with parenthesis)
ib inner () block
aB a {} block (with braces)
iB inner {} block
a< a <> block (with <>)
i< inner <> block
a[ a [] block (with [])
i[ inner [] block
这里有很多更好的答案,但为了完整性,我将提及在阅读上面提到的一些伟大答案之前我曾使用的方法。
假设您想从第24行到39行删除。您可以使用ex命令。
:24,39d
您也可以使用“yank”命令来复制行。
:24,39y
在24-39行之间找到并使用查找和替换功能
:24,39s/find/replace/g
这在一定程度上取决于那个大块是什么。如果您只想删除一个段落,则可以使用dip命令。
如果您通过 set number
打开行号功能,则只需使用 dNNG
即可从当前位置删除到第NN行。因此,您可以导航到要删除的行的开头,然后仅需使用 d50G
,假设这是您要删除的最后一行。
有几种可能性,最好的取决于您所处理的文本。
两种可能性如下:
V
、S-V
等),使用光标移动选择文本,然后按d
键删除dap
删除整个段落如果整个代码块在屏幕上可见,您可以使用relativenumber设置。请参阅:help relativenumber。7.3版本中提供。
对我来说,计算行数太繁琐了,但计算“段落”就不那么麻烦了。 '{' 和 '}' 分别将光标移动到光标前后的第一行空行。光标移动操作可以与删除操作结合使用,几个其他答案也采用了类似的方法(dd 删除一行,dG 删除文档末尾等)。
例如:
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
Lorem *ipsum(void) {
return dolor(sit, amet);
}
您可以将光标放置在块的开头或结尾,进入可视化模式 (shift-v)。然后简单地向上或向下移动,直到所需的块被突出显示。最后,通过按 y 键复制文本,或按 d 键剪切文本。
51dd
。或者,使用一个动作命令--50d<向下箭头>
。 - BallpointBen:set rnu
命令,Vim 将立即完成此操作!您所在的行仍将被绝对编号,但是光标上下的行将对称地编号为 1、2 等(并随光标移动、文件级事件等更新)。 - John Psed
命令...请参见https://dev59.com/cW015IYBdhLWcg3w9wp1#6287940 - bcag2