在vim中,我经常发现自己删除(或复制)大块的文本。人们可以数一数文本的行数,并说(例如)50dd来删除50行。
但是如何在不知道要删除多少行的情况下删除这么大的文本块呢?
在vim中,我经常发现自己删除(或复制)大块的文本。人们可以数一数文本的行数,并说(例如)50dd来删除50行。
但是如何在不知道要删除多少行的情况下删除这么大的文本块呢?
当前回答
如果整个块在屏幕上可见,您可以使用相对编号设置。参见:help relativenumber。7.3版提供
其他回答
有几种可能,哪种最好取决于你处理的文本。
我想到了两种可能:
切换到可视模式(V, S-V, ),用光标选择文本 移动并按d 用:dap删除整个段落
你也可以使用可视化模式(一些命令也可以使用删除选项) 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
您可以将光标放在块的开头或结尾,并进入可视模式(shift-v)。然后简单地向上或向下移动,直到所需的块突出显示。最后,通过按y复制文本或按d剪切文本。
我不是vim大师,但我在这种情况下使用的是“可视模式”。在命令模式下,输入V(大写)。然后向上/向下移动以突出显示要删除的块(所有常用的移动命令都有效)。然后用x或d去掉它。
如果整个块在屏幕上可见,您可以使用相对编号设置。参见:help relativenumber。7.3版提供