3

":g-2-g/3/" 中是否有问题,或者全局中的递归是否丢失了?我无法理解错误的原因:

E147:不能做:全局递归

如何在 VIM 中进行递归全局搜索?

[尼尔对运营商的初步建议\| ]

g/1.*2\|2.*1/

一个缺点是组合会随着 n 个数字扩展。对于三个数字,组合数为 3!(=6) 即

g/1.*2.*3\|2.*1.*3\|3.*1.*2\|1.*3.*2\|2.*3.*1\|3.*2.*1/ 

对于 n 个数字,组合的数量是 n!。

[使用运算符 \& 的解决方案]

Brian Carper 和 Neil Butterworth 找到了解决方案。非常感谢他们!

g/.*1\&.*2\&.*3/

它适用于整条线:

g/.*1\&.*2\&.*3\&.*/
4

1 回答 1

3

新信息:这就是你想要的——“\&”序列是“与”运算符:

g/.*1\&.*2\&.*3/

Brian Carper(见评论,再次感谢)的解释:

/1\&2/行不通,因为两个分支都需要“在同一位置”匹配。/.*1\&.*2/让 match 将自身锚定在行的前面,然后扩展它需要找到数字的程度

于 2009-04-10T11:33:24.817 回答