如何用Vim中的函数结果替换字符串?

时间:2012-06-06 09:08:40

标签: vim

我想在文件的某些位置插入文件名和行号。例如,这一行:

_debug('init');

我想替换

:s/debug('/debug('(%current_filename_here%:%current_line_number_here%)\ /g

得到这个

_debug('(filename.ext:88) init');

我尝试使用expand('%:t')获取文件名和行(".")来获取行号,但我不知道如何在替换表达式中使用它。

我该怎么做?

1 个答案:

答案 0 :(得分:8)

您可以使用\=。例如:

:s@_debug('\zs@\=printf('(%s:%d) ', expand('%:t'), line('.'))@

  

当{replacement}以"\="开头时,它将被评估为表达式