gpt4 book ai didi

vim - 在 vim 脚本/函数中迭代匹配项的最简单/最优雅的方法是什么?

转载 作者:行者123 更新时间:2023-12-04 22:20:54 25 4
gpt4 key购买 nike

我正在寻找一个优雅的解决方案(在 vim 脚本中)迭代所有匹配项
缓冲区中的正则表达式。那会是这样的

fu! DoSpecialThingsWithMatchedLines()

for matched_line_no in (GetMatchedPositions("/foo\\>.*\\<bar"))
let line = getline(matched_line_no)
call DoItPlease(line)
end for

endfu

有这样的吗?我不一定要寻找一个成熟的
解决方案,任何指向我正确方向的指针都可以。

谢谢/雷内

最佳答案

你可以使用 :he :global 例如。

 :%g/foo\\>.*\\<bar/call DoItPlease(getline("."))

脚本示例:
fun! Doit(line)
echo a:line
endfun


fun! MyDo()
%g/foo/call Doit(getline("."))
endfun

:call MyDo()

关于vim - 在 vim 脚本/函数中迭代匹配项的最简单/最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872521/

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