我不确定它是否可能,但我发现我需要经常做的事情之一是替换文件的内容,但我想使用当前行号作为替换选项。所以,如果我有一个像:
这样的文件This is text to replace XX
This is text to replace XX
This is text to replace XX
我希望能够运行一个将该文件转换为:
的正则表达式This is text to replace 1
This is text to replace 2
This is text to replace 3
我环顾四周,但似乎无法找到任何办法。这可能吗?有谁知道一个简单的方法来解决这个问题?
感谢。
答案 0 :(得分:25)
:help sub-replace-expression
您可以构造一个替换表达式,如:
:s@ xx$@\=" " . line(".")@
......哪个适合我。
答案 1 :(得分:0)
这是更容易的方法
:%s/dummy/\=printf("dummy%d", line('.'))
vi中的上述正则表达式将行号附加到每个伪单词:
来自
dummy
dummy
dummy
收件人:
dummy1
dummy2
dummy3