在 vim 中可以用 替换1-10
吗1,2,3,4,5,6,7,8,9,10
?
我并不是说:s:1-10:1,23,4,5,6,7,8,9,10
像命令那样会查看范围并进行适当的替换。
答案1
这将完成你想要的:
:%s/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)),',')/g
当然,您可能希望将其放在用户定义的命令中:
:command! -nargs=0 RangeReplace %s/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)),',')/g