2012-11-16 9 views
12

vimの検索/置換操作で関数を呼び出すことができます。例:vim - 'replace'式内の関数の呼び出し

%s/regex/\=localtime()/g 

は、「正規表現」と一致するものを現在のエポック時間に置き換えます。問題は、「置換」式に何も追加できないことです。たとえば、次のようになります。

%s/regex/epoch: \=localtime()/g 

「localtime」はもはや関数として扱われません。代わりに、単に 'epoch:= localtime()'を置換テキストの文字列として出力します。その意図は、代わりに 'エポック:1353085984'を印刷することです。

置換式の任意のセクション内から関数を呼び出す方法はありますか?

答えて

14

置き換え式を使用したら、置き換え式全体を指定する必要があります。

:%s/regex/\='epoch: ' . localtime()/g 
+0

完璧な答え:あなたはこのように、あなたの表現で文字列の連結を使用して(とsubmatch(1)の代わり\1を介して捕捉要素を参照)することができます!簡潔で、シンプルで正確です。ありがとう! – pedorro

関連する問題