2013-09-25 71 views
0

樣品:如何使用搜索/替換訪問vim中的正則表達式匹配?

function foobar($arg1 = null, $arg2 = null) { 
    $_a = $arg1; 
    $_b = $arg2; 
} 

我想寫一個搜索和替換vim的正則表達式,這是否:

function foobar($arg1 = null, $arg2 = null) { 
    $_a = (!$arg1) ? $arg1 : 1; 
    $_b = (!$arg2) ? $arg2 : 1; 
} 

這是我到目前爲止已經試過:

  1. 使用.命令重複我在vim中的最後一個動作,但它只在行
  2. 上附加 : 1;
  3. 我寫了wri這個正則表達式的幾十個變體,但不能按預期的那樣工作: ​​
  4. 手動替換線條,但不言而喻,我必須通過大量的文件來做到這一點。

基本上就是我想要做的就是寫一個匹配 $arg1然後附上與之相匹配的三元運算符正則表達式,但我一直無法訪問vim的正則表達式匹配。

任何幫助將不勝感激!

(它沒有在VIM做,我願意像用perl建議)

謝謝!

回答

1

嘗試以下命令:

:%s/\(\$arg[0-9]\);/(!\1) ? \1 : 1; 

上面的命令與(!$arg1) ? $arg1 : 1;

更換 $arg1;