作者AstralBrain (妄想制御)
看板Editor
標題[vim ] 尋找匹配的括號做取代
時間Fri May 4 02:49:30 2012
如題, 例如說我想把所有的 foo(expression) 取代成 foo(expression).bar
expression可能是任意的c運算式
(可以先假設不包含字串 不然太複雜了)
上網查了一下 似乎是超過vim的regex的能力範圍
請問有沒有別的解法
thanks
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 54.248.3.162
1F:推 fjm31714:目前想到用錄製巨集的 因為%可以跳到對應括號 05/04 03:11
2F:→ fjm31714:qa/foo(<enter>%i.bar<esc>q 然後@a可以讓他作一次 05/04 03:19
3F:→ fjm31714:<enter><esc>是按enter和esc執行到檔案結尾不知道怎麼作 05/04 03:22
4F:推 kdjf:你的意思是foo(abc),foo(3+2),foo("adc")都要改成foo(x).bar? 05/04 08:14
5F:→ mars90226:可以用:%s/foo(//gn 知道有幾個,比如N個 然後N@a 05/04 10:08
6F:→ mars90226:巨集就是用上面f大做好的巨集 05/04 10:08
7F:→ AstralBrain:感謝樓上三位<(_ _)> 05/04 17:58
8F:→ AstralBrain:@kdjf: 對, 而且要處理foo((1+2)*(3+4))這種case 05/04 17:59
9F:→ ViewMoon::%s/foo(.*)/&\.bar/g 05/05 18:37
10F:→ fjm31714:樓上的作法是不是在類似 foo(1+2)*(3+4)會有問題? 05/05 22:32
11F:→ ViewMoon:會... 那例只能用巨集了 05/06 00:03