14

vimの検索/置換操作で関数を呼び出すことができると理解しています。例えば:

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

'regex'に一致するものはすべて現在のエポック時間に置き換えられます。問題は、「置換」式に他に何も追加できないことです。例えば:

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

'localtime'を関数として処理しなくなりました。むしろ、置換テキストの文字列として「epoch:= localtime()」を出力するだけです。代わりに、「エポック:1353085984」を出力することを目的としています。

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

4

1 に答える 1

16

replace-expressionを使用すると、それが完全な置換である必要があります。次のように、式で文字列連結を使用できます(そして、submatch(1)の代わりにを介してキャプチャされた要素を参照します\1)。

:%s/regex/\='epoch: ' . localtime()/g
于 2012-11-16T17:31:39.677 に答える