gpt4 book ai didi

vim - 遍历正则表达式结果 vimscript

转载 作者:行者123 更新时间:2023-12-04 21:50:18 26 4
gpt4 key购买 nike

在 vimscript 中,如何遍历当前文件中正则表达式的所有匹配项,然后为每个结果运行 shell 命令?

我认为这是一个开始,但我无法弄清楚如何将整个文件提供给它并获得每场比赛。

while search(ENTIRE_FILE, ".*{{\zs.*\ze}}", 'nw') > 0
system(do something with THIS_MATCH)
endwhile

最佳答案

假设我们有一个包含内容的文件:

123 a shouldmatch
456 b shouldmatch
111 c notmatch

我们喜欢匹配
123 a shouldmatch
456 b shouldmatch

使用正则表达式
.*shouldmatch

如果每行只有一个匹配项,则可以使用 readfile() ,然后循环遍历各行并使用 matchstr() 检查每一行。 [1]
function! Test001()
let file = readfile(expand("%:p")) " read current file
for line in file
let match = matchstr(line, '.*shouldmatch') " regex match
if(!empty(match))
echo match
" your command with match
endif
endfor
endfunction

您可以将此函数放入 ~/.vimrc 并使用 call Test001() 调用它。

[1] http://vimdoc.sourceforge.net/htmldoc/eval.html#matchstr%28%29

关于vim - 遍历正则表达式结果 vimscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com