在 Vim 中使用全局变量定义的值之间的 Yank 文本

Yank text between values defined with a global variable in Vim

以下命令提取由 ## 分隔的文本并将其保存到缓冲区 a:

:?##?;/##/y a

这将查找分隔符的前一个和下一个出现位置。但我想将其推广到任何定界符。我正在考虑用

定义一个变量

let g:delimiter = "#another_delimiter"

但我不知道如何访问该值来执行类似

的操作

:?\=g:delimiter?;/\=g:delimiter/y a

大家有什么建议吗?

如果您在命令行上执行此操作,则可以使用 <C-r>=variable:

插入变量的值
:?<C-r>=g:delimiter<CR>?,/<C-r>=g:delimiter<CR>/y a

如果您在脚本中执行此操作,则应改用字符串连接:

execute ":?" . g:delimiter . "?,/" . g.delimiter . "/y a"