在 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"
以下命令提取由 ## 分隔的文本并将其保存到缓冲区 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"