2010-04-10 139 views
24

IntelliJ中是否有插件或工具將刪除源.java文件中的所有註釋?我已閱讀了ANT task可以做到這一點..正在尋找在IDE內做同樣的事情。另外一個TextPad插件將工作以及..使用IntelliJ刪除源文件註釋?

+2

爲什麼不只是運行Ant任務的IntelliJ和收工? – duffymo 2010-04-10 13:07:39

+0

Duffymo,這太有道理了;-) – 2010-04-10 14:02:40

+0

好吧,它確實有道理,我很想找到一個IntelliJ插件,我可以輕鬆地使用任何舊文件打開我想清除的意見。 – 2010-04-11 16:07:41

回答

67

您可以使用「替換」(或「路徑替換」如果你想刪除多個文件註釋)在正則表達式模式,然後在使用這個正則表達式「要查找的文本」字段:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*) 

並將其替換爲空字符串。然後按「全部」將此替換應用於整個文件或所有選定的文件。這將刪除文件中的所有塊註釋和行註釋。如果只想阻止評論被刪除,請使用此正則表達式來代替:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/) 

如果你想只刪除行註釋,你可以用這個表達式:

([ \t]*//.*) 

不過,我要提醒這隻能工作99.99倍。你可能在你的文件中定義就像一個字符串變量:

String myStr = "/** I am not a comment */"; 

此正則表達式將會把這個給:

String myStr = ""; 

:d

希望這有助於。

+0

好主意..但是RegEx似乎不適合我.. – 2010-04-11 00:03:57

+0

第一個?我只是在IDEA 9.0.1中檢查過它,它對我有用。 – Behrang 2010-04-11 15:08:34

+0

嗯..我試圖在這個http://pastebin.com/u0fQub8j文件..似乎並沒有工作。有任何想法嗎?我在IntelliJ 8. – 2010-04-11 16:11:35

0

我的解決辦法是:

find . -name *.java -type f -exec sh -c "perl -0pe 's#/\*(.|\n)*?\*/##g; s|//.*?\n|\n|g' '{}' > temp.java; cat temp.java > {} ; rm temp.java;" \; 
+1

請縮進和風格化你的代碼:) – 2014-08-21 07:05:46

2

遲到了,但有"Structural Search and Replace Dialogs"選項,可以被用來搜索不同類型的意見,並取代它們

去編輯=>查找=>從結構替換...

  • 輸入下面一個 「搜索模板:」

單線

// $CommentContent$ 

多線

/* 
    $CommentContent$ 
*/ 

的Javadoc

/** 
    $CommentContent$ 
*/ 
  • 離開「更換模板:」空白

  • 選擇合適範圍

  • 點擊 '查找',然後 '全部替換'

  • 你S HOULD認爲沒有更多的評論

注:,這可能弄亂格式,所以你將不得不重新格式化受影響的代碼

+0

對我而言最佳答案 – otaviodecampos 2017-07-26 17:59:50