Answers:
我不是vim专家,但在这种情况下使用的是“可视模式”。在命令方式下,键入V
(大写)。然后向上/向下移动以突出显示要删除的块(所有常规移动命令均有效)。然后使用x
或将其删除d
。
.vimrc
正在起作用?
Shift
- 进入视线模式v
... ...我也尝试使用该CTRL
键。因此,这可行并且可能是最方便的方法。
CTRL
- v
)和视觉块(Shift
- v
)。
转到起始行并键入ma(标记“ a”)。然后转到最后一行并输入d'a(删除以标记“ a”)。
这将删除从当前行到已标记行(包括首行)的所有行。它也与vi
和兼容,vim
以免您的环境没有幸免于后者。
/var/mail/username
中批量删除服务器中的邮件,并保留最后的邮件。我做了标记,然后我进入例如50000
,然后gg
去线50.000,然后我删除所有线之间。奇迹般有效!
vim
用作编辑千兆字节文件的工具-我倾向于选择文本处理工具,例如awk
及其兄弟:-)
您可以使用可视化模式也(一些命令与删除选项也可用)
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
dap
作为“删除段落”非常容易记住
这取决于那个大块是什么。也许您只是想删除一个段落,在这种情况下a dip可以。
您可以将光标放在块的开头或结尾,然后进入可视模式(shift-v)。然后只需向上或向下移动,直到突出显示所需的块。最后,按y复制文本或按d剪切文本。
计数行对我来说太麻烦了,但是计数“段落”并不算糟糕。'{'和'}'分别将光标移动到光标之前和之后的第一个空行。光标移动操作可以与删除结合使用,其他几个答案也使用类似的方法(dd用于一行,dG用于文档末尾,等等)
,例如:
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
Lorem *ipsum(void) {
return dolor(sit, amet);
}
如果光标从注释块上方开始,则“ d}”将删除注释块,而“ d2}”将删除注释块和代码块。如果光标从代码块下方开始,则'd {'删除代码,而'd2 {'删除两个代码。当然,您可以通过先移动光标来跳过一个块:'{d {'或'} d}'。
如果您与空白一致,或者您可以一目了然地计算段落数,则应该可以。如果您有兴趣,Vim帮助文件提供了更多的游标技巧。
假设您的光标位于代码块的开头:
V/^$<CR>d (where <CR> is the enter/return key)
V
/^$<CR>
d
一个更强大的解决方案:
:set nowrapscan
:nnoremap D V/^\s*$\\|\%$<CR>d
:set nowrapscan
D
密钥(到以下命令)::nnoremap D
V
/^\s*$\\|\%$<CR>
d
51dd
。或者,使用运动命令50d<down arrow>