3

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

_debug('init');

我想换

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

得到这个

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

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

我怎样才能做到这一点?

4

1 回答 1

8

您可以使用\=. 例如:

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

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

于 2012-06-06T09:10:33.410 回答