2012-01-05 152 views
18

Notepad ++显然可以识别所有注释。有没有办法简单地删除所有?有没有办法使用Notepad ++删除文件中的所有注释?

编辑: Stat-R的书签方法非常有用,不仅用于删除注释,而且用于有条件地删除行。

+1

如果你仍然想要一个答案...你想删除行评论? – 2012-03-27 15:53:16

+0

请告诉。 – Cos 2012-03-27 20:18:25

+0

你好,检查我的答案行评论。 – Jamil 2015-10-26 06:24:22

回答

27

对于一个通用文件,首先你需要知道你正在写文件的语言的注释操作符。例如,在java脚本中,注释操作符是//。 对于下面的代码...

enter image description here

在NP ++,你需要

马克包含 '//' 的线。 确保书签选项已启用。

enter image description here

然后,选择从NP ++菜单搜索>书签>移除收藏线

enter image description here


编辑:@Chris Mirno 's建议另一种解决方案如下: 使用正则表达式。看到下面的图片。它是自我解释 enter image description here

为了更好地理解它,请参阅these

+0

@Cos,你也可以看到[这个答案](http://stackoverflow.com/questions/918158/how-to-delete-specific-lines-on-notepad/918225#918225) – 2012-03-29 16:57:17

+3

如果/ *新行* /和 代码//评论存在于同一行 – 2012-06-11 16:47:28

+3

@IvanWang删除/ * * /第一,然后// – 2014-03-14 04:26:19

9

警告所有使用统计-R解决方案:
如果此格式此方法将删除的代码行:

echo "hello"; //This comment will be detected 

按照他的方法,整行行将被删除。 因此,请务必在完成此方法之前通过并做出这些评论,自己的行。

+0

(+1)感谢您指出这一点。请参阅我的编辑 – 2012-08-14 17:27:27

+0

您也可以使用正则表达式进行搜索,因此打开正则表达式功能并在注释代码前添加^以搜索行的开头。您的结果表达式就像^ \%(\转义%字符)。 – pypmannetjies 2014-01-24 11:33:58

+0

对于行评论检查我的答案 – Jamil 2015-10-02 09:31:14

2

我有一些运气为上述运行宏。基本上:

  • 搜索//F3
  • 选择到行尾的( +
  • 删除(删除

//只需搜索一次即可进入搜索对话框。然后在宏中记录三个步骤,然后播放直到EOF。

第一次我做了它,我遇到了一个问题,但后来它工作,不知道我做了什么不同。

+0

这里最好的答案 – djb 2015-02-09 15:08:34

-3

输入CTRL + SHIFT + K删除评论

+5

我相信这会删除评论,'/ /',但不会删除实际行(和所有评论),因为OP问。 – ahren 2013-11-09 11:52:45

0

正如有人在另一篇文章中建议,最简单,最可靠的是也许使用菜单插件中的所有文本导出.rtf格式 - > NppExport - >导出到RTF,然后:

- 打开Word中

新创建的文件 - 选择任何评论

-On右上侧字集团公司选择的任何部分 - >选择所有文本具有相似的格式

- 删除选中的评论一次性(del或者如果不工作切)

+0

也许这是有效的,但是您绝对应该避免使用Microsoft Word或任何其他富文本编辑器进行代码编辑。 – dev101 2017-12-17 16:26:55

14

enter image description here

在查找&替换对话框,把下面的正则表达式,并调整搜索选项描述。

/\*.*?\*/ 

替换为:(空)

选择模式:正则表达式(点)匹配换行符

这应该删除所有你的C风格的注释跨行跨越。

+0

如果注释开始(/ *)位于与结尾(* /)不同的行上,这似乎不起作用。 – userx 2015-01-20 22:49:29

+2

我的坏!我忘了提及。(点)匹配换行选项也应选择。编辑答案以纠正此问题。请注意多行支持正则表达式最近在Notepad ++中引入,因此请确保您已安装最新版本 – SenG 2015-01-24 11:43:00

1

安东Largiader的回答是最可靠的一个,包括复杂的内部注释。

但是,它会留下许多空行,包括那些用空字符(空格,制表符...),所以我想补充的另一个步骤,使之近乎完美:

运行宏后,只是做:

编辑>行操作>删除空行

OR

编辑>行操作>删除空行(包括空白字符),如果你只想删除真正空行 第二个选项将删除所有的空行,即使收容空间等,让有

第一种选择是好的将不再有代码块之间的实际间隔。第一种选择可能是最安全的,然后再进行一些手动清理。

6

星-R和克里斯Mirno答案也正确和良好的。

但对于行注释:

//.*?(?=\r?$)

说明:

//将起始位置

.*?会有任何字符

(?=\r?$)将搜索到该行的末尾(因为它需要在l INE评论)

注: 但仍检查每一行的,因为,例如,如果你的代码中包含像

//www.w3.org/2001/XMLSchema-instance\x2......"); 

肥皂格式,因为起点是//,它会抓住这条线去行结束,所以要小心这:) :)

+2

这对我来说至少是最好的答案,但是它仍然有一些缺陷,比如'url:http:// some -link /'。要解决这个问题,只需使用:'^ //。*?(?= \ r?$)'正则表达式。这将确保只有真正的注释行被标记。 – dev101 2016-03-08 06:38:02

相关问题