所以,我在C中有一个很大的代码文件,其中有多个这样的解引用。
iter->sector;
msg->sector;
dump.msg->sector;
其中iter和msg的类型相同。现在,由于一些变化,我不得不写一个宏来替换这些行。宏看起来像,
DUMMY_MACRO(iter)
DUMMY_MACRO(msg)
DUMMY_MACRO(dump.msg)
我想要的是能够使用vim search / replace将早期代码替换为新的宏代码。
答案 0 :(得分:2)
如果您已经知道sed
,那么:substitute
将是完美的工具。
" untested
:%s/\v(\S+)-\>sector/DUMMY_MACRO(\1)/g
:h :s
:h /\v " -> to simplify expressions
:h /\( " -> define a group
:h /\S " -> any thing that is not a space
:h /\+ " -> 1 or more
:h /\1 " -> ref to 1st group