在vimscript中,我定义了一个变量,就像这样:
let b:myvar = 'abc'
现在我该如何将该变量的内容插入到搜索和替换中,例如:
:s/123/&myvar/
在vimscript中,我定义了一个变量,就像这样:
let b:myvar = 'abc'
:s/123/&myvar/
Kent的回答对于替换部分很有效;如果在交互式地键入替代命令时需要进行通用插入,可以通过<C-R><C-R>=
插入任何表达式(不仅限于变量,还包括函数等。)(这些必须被敲成Ctrl + R,Ctrl + R,=,而不是文字形式):
:substitute/<C-R><C-R>=b:myvar<CR>/replacement/<CR>
在脚本中,你可以使用:execute
命令:
:execute 'substitute/' . b:myvar . '/replacement/'
b:myvar
位置使用的变量会发生变化,比如说是一个循环变量,那么这种方法就行不通了(据我所知)。 - hippietrail=
。这些是特殊的键序列(类似于映射中的表示法),因此您必须按两次CTRL-R,然后是=
,然后输入变量名(b:var1
),最后按Enter键。然后您应该在命令行中看到变量内容,并像往常一样进行结论。 - Ingo Karkat试试这行代码:
:s/123/\=b:myvar/
:s/\=b:myvar/123/
似乎无法正常运行。 - Alexej Magura