在执行搜索和替换时,在 vi 编辑器中指定替换功能

在执行搜索和替换时,在 vi 编辑器中指定替换功能

我想要一个替换函数,其结果将用作替换,并且将匹配作为输入。

某些语言中具有此功能(例如 Lua)。

例如,假设我有一个文本中的站点列表,我想用 ping 值替换它们。

答案1

您可以通过以 开头将替换模式变为表达式\=,这样就可以通过这种方式调用函数并将与该函数匹配的子函数传递给该submatch()函数,例如:

:%s/foo .*/\=Foo(submatch(0))/g

(请记住子匹配 0 始终意味着整个匹配的模式。)

看:

:help sub-replace-expression
:help submatch()

相关内容