vim使用搜索内部变量的内容并替换表达式

Mag*_*nus 8 vim

在vimscript中我定义了一个这样的变量:

let b:myvar = 'abc'
Run Code Online (Sandbox Code Playgroud)

现在我如何将该var的内容插入到搜索和替换中,例如:

:s/123/&myvar/
Run Code Online (Sandbox Code Playgroud)

Ing*_*kat 11

Kent的答案适用于更换部件; 对于以交互方式键入替换命令时的通用插入,您可以通过插入任何表达式(不仅仅是变量,还有函数等)<C-R><C-R>=(这些必须键入为Ctrl+ R,而不是字面):

:substitute/<C-R><C-R>=b:myvar<CR>/replacement/<CR>
Run Code Online (Sandbox Code Playgroud)

在脚本中,您将使用:execute:

:execute 'substitute/' . b:myvar . '/replacement/'
Run Code Online (Sandbox Code Playgroud)


Ken*_*ent 5

试试这一行:

:s/123/\=b:myvar/  
Run Code Online (Sandbox Code Playgroud)