我想在每一个匹配的单词的末尾附加-,但是,附加的-的数目应该基于匹配的计数,这样行中的字符总数保持不变。如下例所示,字符总数应为6。例如:
ab xyz abcde
上述案文应改为:
ab---- xyz--- abcde-
ee7vknir1#
可以使用\=替换为表达式,请参见:h sub-replace-expression。当替换字符串以\=开头时,余数被解释为表达式。submatch()函数可用于获取匹配文本。整个匹配文本可通过submatch(0)访问。文本与第一对()和submatch(1)匹配。()中的进一步子匹配也是如此。所以你可以这样实现它:
\=
:h sub-replace-expression
submatch()
submatch(0)
()
submatch(1)
:[range]s//\=submatch(0) . repeat('-', 6-strlen(submatch(0)))/
1条答案
按热度按时间ee7vknir1#
可以使用
\=
替换为表达式,请参见:h sub-replace-expression
。当替换字符串以
\=
开头时,余数被解释为表达式。submatch()
函数可用于获取匹配文本。整个匹配文本可通过submatch(0)
访问。文本与第一对()
和submatch(1)
匹配。()
中的进一步子匹配也是如此。所以你可以这样实现它: