2014-01-24 102 views
2

我试图找到一个模式并删除该块。如何从vim命令行中选择?

要删除块我手动做V$%x

N - 行选择,$ - 移动到行的结束(是有{线的端部),% - 移动到匹配},X - 删除块

我想知道是有一种方法自动化。有全局命令:g但我不知道如何在命令模式下选择文本。

+0

你有没有试过'da {'? –

+0

这再次在正常模式下工作,而不是在命令行模式下 –

回答

6

只是为了记录,发现其解决

编辑:

:g/pattern/norm! V$%x

+3

您可以省略exe:':g/pattern/norm! V $%D'。 – Conner

+0

'V $'? '$'在这里扮演什么角色? 'V'已经在线选择。而且你最好举个例子,因为我不能得到你想要的命令。它有不同的问题......这取决于你想要达到的目标,以及你的线路是怎样的。 – Kent

+0

@Kent:假设你有第一个字符的游标,并且有一个函数'void func(int a,int b){''%'将把你移到''''旁边的b,而不是'}'在功能结束 –

0

当您激活按v视觉模式,你可以选择:

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  

希望帮助

+0

为了自动化,我想从命令模式中选择文本而不是可视模式。 –