4
我在文件一堆C宏的,这样的东西NEXT(pL)
其扩展到((pL) -> next)
Emacs的正则表达式组正则表达式替换
我想,因为他们不需要除去其中的大多数。
我想要做的是获取宏中括号内的文字pL
。我希望替换正则表达式使用该文本进行重写。例如,在Perl我可以做类似/NEXT\(\s*(.+)\s*)
(可能有点不正确的),然后输出类似$1->next
,应转线
if (NEXT(pL) != NULL) {
到
if (pL->next != NULL) {
在Emacs中,我会喜欢在逐个文件的基础上在emacs replace-regexp中使用匹配组。我不完全确定如何在Emacs中做到这一点。
可以使用“M-x c-宏扩展”或“M-x c-宏扩展”。但是你所要求的看起来将需要一个围绕“M-x c-macro-expansion”的新函数来处理整个文件或缓冲区。 – vpit3833 2010-12-01 21:32:11
c-macro-expand虽然不知道宏吗?它们位于单独的文件/缓冲区中。 – Kizaru 2010-12-01 21:37:16