2015-01-05 94 views
1

如何將替換字符串中的部分搜索模式。如何使用替代替換vim中的表達式部分

我有common_wqe_get_len(abc)
同樣這一個def->hwqe_w1_lencommon_wqe_get_len(def)

使用VIM替代命令只有一個表達式來取代abc->hwqe_w1_len

我試過使用下面的命令,但它說無效的命令。
:%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1) '\)'/gc

當我刪除右括號它的工作原理,但它之前abc
:%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1)/gc

需要的空間是什麼錯誤我在做什麼?我怎樣才能把abc的空格和最後的大括號放在一起?

+4

您在'submatch(1)'後面缺少串聯運算符'.'。但是,因爲這全是文本的,你不需要替換表達式,一個簡單的'\ 1'反向引用就可以做到。 –

回答

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