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