在Vim中可以用随机生成的数字替换正则表达式吗?这是我需要的一个例子。
输入文件:
<a>XYZ</a>
<a>XYZ</a>
<a>XYZ</a>
<a>XYZ</a>在用随机数替换XYZ之后,输出可能是:
<a>599</a>
<a>14253</a>
<a>1718</a>
<a>3064</a>发布于 2012-10-05 04:04:36
如果您不介意在vim中使用一点perl,您可以使用
:%! perl -pne 's/XYZ/int(rand 1000)/ge'XYZ XYZ
XYZ XYZ XYZ
XYZ XYZ XYZ XYZ XYZ XYZ
XYZ XYZ变成类似这样的东西
86 988
677 477 394
199 821 193 649 502 471
732 208发布于 2012-10-05 03:59:52
试试这个:将下面的代码放到一个缓冲区中,然后将其源化(:source %)。
let rnd = localtime() % 0x10000
function! Random()
let g:rnd = (g:rnd * 31421 + 6927) % 0x10000
return g:rnd
endfun
function! Choose(n) " 0 n within
return (Random() * a:n) / 0x10000
endfun 然后您可以执行以下操作:
:s_\(<a>\).*\(</a>\)_\1\=Choose(line('.')*100).\2_https://stackoverflow.com/questions/12734733
复制相似问题