2014-11-04 13 views
0

我有一個非常大的源代碼(> 10,000lines)來改變,有一些函數與fn_i_dont_want,我不需要改變,所有其他函數我必須做一些改變。所以在這麼大的源代碼中很難找到這樣的功能。 例如:在vim中沒有一些特殊函數調用的搜索函數

int foo_i_dont_want() 
{ 
    fn_i_dont_want() 
} 

int foo_i_want1() 
{ 
    fn() 
    fn1() 
} 

int foo_i_want2() 
{ 
    fn() 
    fn1() 
    .... 
} 

我想Vim搜索我想要的所有功能,foo_i_want1foo_i_want2,條件是我不希望與函數調用fn_i_dont_want功能。

我試圖使用vim的正則表達式像

/{\_.\{-}fn_i_dont_want\_.\{-}} 

/{\_.*fn_i_dont_want\_.*} 

但是,一切都失敗了,它變得更糟時,有一些像這樣的功能:

int foo_i_dont_want() 
{ 
    struct bar = {0,0}; 
    fn_i_dont_want(); 
} 

vim搜索括號{}中的所有對象。

那麼有人可以幫助我嗎?

+2

強制性問題:***你想對這些比賽做什麼?*** – romainl 2014-11-04 07:35:21

回答

0

解析具有正則表達式的複雜編程語言必然是不完整和有問題的。相反:

  • 或者使用一個真正的IDE的重構功能,或者如果你必須這樣做在Vim中使用:substitutec onfirm標誌,並手動接受/檢查它
  • 後回落每場比賽位置