如何在Vim搜索字符串中使用变量

4
我有一个很长的vim正则表达式,经常使用,其中有一个id重复出现。我想实现的是将这个id参数化到搜索字符串中,这样通过设置不同的id值,我可以运行搜索并根据需要获取不同的匹配结果。
例如,如果搜索正则表达式如下:
/input\(1\|output\(1\|mux\(1
我想将1参数化,这样我就可以像:let res_id=1这样进行调整。
我是否可以在常规'/'搜索中实现,还是需要vim脚本?我真的不是vim迷,所以很抱歉问题的格式。
谢谢。

你不能使用 set var=value,你可能想用 let?你不能将变量放在 / 搜索中。但是在 Vim 脚本中可以这样做。 - Kent
@Kent 没错,我想表达的是“let”,抱歉。虽然很遗憾,但没关系,非常感谢。 - abdus_salam
1个回答

4
/ 搜索中,您不能使用变量。您可以尝试的是,设置 / 寄存器。
例如,
function! MySearch(myVar)
    let @/='input\('.a:myVar.'\|output\('.a:myVar.'\|mux\('.a:myVar
endfunction

然后您通过:call MySearch('newValue')传递newValue

2
当你知道答案时,看起来很简单,不是吗 :) 它完成了工作,非常感谢。 - abdus_salam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接