[英]In vim, how to remove all the C and C++ comments?
如何刪除vi中的所有C和C++注釋?
//
/*
*/
你不能。 解析 C 和 C++ 注釋不是正則表達式可以做到的。 它可能適用於簡單的情況,但您永遠不知道結果是否會給您留下損壞的源文件。 例如,這會發生什么:
printf ("//\n");
正確的方法是使用能夠解析 C 的外部工具。例如,某些編譯器可能有一個選項來去除注釋。
編寫注釋剝離器也是 lex 和 yacc 編程的基本練習。
另請參閱此問題: 從 C/C++ 代碼中刪除注釋
使用正則表達式,由於 C/C++ 語法的復雜性,您最多只能實現 90% 正確的解決方案。 最好讓正確的工具(編譯器)來完成這項工作。
幸運的是,Vim 與外部工具很好地集成在一起。 基於此答案,您可以執行以下操作:
:%! gcc -fpreprocessed -dD -E "%" 2>/dev/null
注意事項:
gcc
Esc:%s/\/\///
Esc:%s/\/\*//
Esc:%s/\*\///
您可以使用直接應用於源代碼的詞法分析器,如Flex 。 在其手冊中,您可以找到“ 我如何匹配 C 風格的注釋? ”。
如果您需要深入的教程,可以在這里找到; 在“詞法分析”部分,您可以找到一個 pdf 文件,向您介紹該工具和包含一些實際示例的存檔,包括“c99-comment-eater”。
這是一個vim內聯函數,可刪除當前緩沖區中的所有C和C ++注釋。
keepp %s/\%(\/\*\_.\{-}\*\/\)\|\/\/.*//
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.