我希望能够,比如说,检查if块中$1的值,以获得第一个反向引用。但是,vimscript不是perl。
有什么方法可以做到这一点吗?我知道在regex中使用\1、\2等的可能性,但我希望匹配这些值,然后在后续语句中使用这些值,就像在perl、php等中一样。
例如,如果在g//命令的计算部分中有,那就太好了,这样你就可以这样做了。
:g/number: \(\d\+\)/b:number += v:matches[1] " or whatever the syntax is/could be
对文件中某数的值求和。
这可以做到吗?
如果不是,有什么好的理由吗?
发布于 2010-01-04 02:05:59
matchlist({expr}, {pat}[, {start}[, {count}]])
返回在{expr}
中搜索{pat}
时找到的\1、\2、\3等
示例:
回声匹配列表(‘acd’,'(a)\?(b)\?(c)\?(.*)')
结果为:'acd','a','','c','d','',''
发布于 2010-01-05 03:03:41
在进一步的介绍中,我做了:lhelpgrep submatch | lope
,发现至少还有一个有用的工具:您可以从substitute
命令的评估端使用submatch({nr})
。例如
:s/there a\(r\)e n\(o \)stupid questions, on\(ly\) stupid people/\=toupper(submatch(2).submatch(1).submatch(3)."?")/
我以前尝试过这种方法,但我想我搜索的是/backref/,没有得到我想要的信息。
https://stackoverflow.com/questions/1995286
复制相似问题