[英]How to pass Vim's regex captured groups to system command?
我有一些看起来像这样的数据:
6000.10c 1.2345E6
而且我可以为Vim写一个正则表达式来捕获“重要”部分:
/6000.10c\s\+\(\S\+\)
这会将数字部分捕获到第一组中。 然后,我想做的就是将此捕获的字符串传递给系统命令,该命令将对结果进行处理并返回放入Vim的字符串。
如何将正则表达式捕获的组发送到系统命令?
下面是一个例子,以及在AWK其实不是必须的,它仅仅是用于示出system()
s/\v6000.10c\s+\zs(\S+)/\=system("awk '{print $0*2}' <<<". submatch(1))/
将改变:
6000.10c 1.2345E6
变成:
6000.10c 2469000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.