2014-01-24 153 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

爲了自動化,我想從命令模式中選擇文本而不是可視模式。 –