如何使用 substitute 替换 vim 中的部分表达式

How to substitute part of an expression in vim using substitute

如何将搜索模式的一部分放入替换字符串中。

我必须将 abc->hwqe_w1_len 替换为 common_wqe_get_len(abc)
同样这个 def->hwqe_w1_lencommon_wqe_get_len(def)

在 vim 替换命令中只使用一个表达式。

我尝试使用以下命令,但它说命令无效。
:%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1) '\)'/gc

当我移除右大括号时它起作用了,但它占用了 abc
之前的空格 :%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1)/gc

我做错了什么?我如何放置 abc 没有空格和最后的右大括号?

:%s/\(\w*\)->hwqe_w1_len/common_wqe_get_len()/g