这里有相对较新的linux / vim / regex用户。我想使用正则表达式搜索数字模式,捕获它,然后使用捕获的值将字符串附加到上一行。换句话说......我有一个格式文件:
标题:description_id
text:{en:'2。文字说明'}
我想从文本字段中捕获值并将它们附加到标题字段的开头...以产生类似这样的内容:
标题:q2_description_id
text:{en:'2。文字说明'}
我觉得我遇到了一种在搜索和参考中引用其他行的方法。替换,但现在很难找到。或者宏可能是合适的。任何帮助将不胜感激...谢谢!
答案 0 :(得分:1)
也许是这样的:
:%s/\(title: \)\(.*\n\)\(text: \D*\)\(\d*\)/\1q\4_\2\3\4/
我们正在寻找4个部分:
"title: "
\n
"text: "
以及直到下一位数并将它们吐出来,4)插入1)和2)之间。
编辑:彼得在评论中提出的更短的解决方案:
:%s/title: \zs\ze\_.\{-}text: \D*\(\d*\)/q\1_/
答案 1 :(得分:0)
使用\ n作为新行(并且^ v +输入替代行上的新行):一个快速而不是很优雅的例子:
<script src='bower_components/mocha/mocha.js'></script>
<script src='bower_components/chai/chai.js'></script>
<script>
mocha.setup('bdd');
</script>
<script src="bower_components/angular-mocks/angular-mocks.js"></script>