有没有办法使用 Notepad++ 删除文件中的所有注释?
Posted
技术标签:
【中文标题】有没有办法使用 Notepad++ 删除文件中的所有注释?【英文标题】:Is there a way to delete all comments in a file using Notepad++? 【发布时间】:2012-02-03 14:53:24 【问题描述】:Notepad++ 显然可以识别所有 cmets。有没有办法简单地删除所有?
编辑: Stat-R 的书签方法有很大帮助,不仅对于删除 cmets,而且对于一般有条件地删除行。
【问题讨论】:
如果你还想得到答案...你想删除被评论的行吗? 嗨 Cos,请查看我的回答以获取行注释。 【参考方案1】:对于一个通用文件,首先你需要知道你正在编写文件的语言的注释操作符。例如,在java脚本中,注释操作符是//。 对于以下代码...
在NP++中,你需要
标记包含“//”的行。 确保书签选项已启用。
然后,从 NP++ 菜单中选择 Search>Bookmark>Remove Bookmarked lines
编辑: @Chris Mirno 's 建议后的另一个解决方案如下: 使用正则表达式。见下图。这是不言自明的
为了更好的理解,请参考these
【讨论】:
@Cos,你可能还会看到this answer 如果/*新行*/和代码//注释存在于同一行中会怎样 @IvanWang 先删除 /* */,然后 //【参考方案2】:在“查找和替换”对话框中,输入以下正则表达式并如图所示调整搜索选项。
/\*.*?\*/
替换为:(空)
选择模式:正则表达式 AND .(dot) 匹配换行符
这应该会删除所有跨行的 C 样式 cmets。
【讨论】:
如果注释开始 (/*) 与结束 (*/) 不在同一行,这似乎不起作用。 我的错!我忘了提 .(dot) 匹配换行符选项也应该被选中。编辑答案以纠正此问题。请注意,Notepad++ 最近引入了对正则表达式的多行支持,因此请确保您安装了最新版本【参考方案3】:Star-R 和 Chris Mirno 的答案也是正确和好的。
但对于行注释:
//.*?(?=\r?$)
解释:
//
将是起始位置
.*?
可以是任意字符
(?=\r?$)
将搜索到行尾(在行注释中是必需的)
注意: 但是仍然检查每一行,因为例如,如果您的代码包含类似的肥皂格式
//www.w3.org/2001/XMLSchema-instance\x2......");
它将捕获这一行,因为起点是 //
并且它会到达行尾,因此请注意这一点 :)
【讨论】:
这至少对我来说是最好的答案,但是,它仍然有一个缺陷,比如url: http://some-link/
。要解决这个问题,只需使用:^//.*?(?=\r?$)
正则表达式。这将确保只有真正的注释行被标记。【参考方案4】:
警告所有使用 Stat-R 解决方案的人: 如果格式如下:此方法将删除代码行:
echo "hello"; //This comment will be detected
按照他的方法,整个行将被删除。 因此,在执行此方法之前,请务必通过并制作这些 cmets,他们自己的路线。
【讨论】:
您也可以使用正则表达式进行搜索,因此请打开正则表达式功能并在注释代码前添加^,以便搜索行首。您的结果表达式将类似于 ^\% (\ 转义 % 字符)。 对于行评论检查我的答案 所以,为了更好的标准,不应该在声明后面添加评论:)【参考方案5】:我有一些运气运行上述宏。基本上:
搜索//
(F3)
选择到行尾(shift+end)
删除(删除)
只需搜索一次即可将//
放入搜索对话框。然后将这三个步骤记录在一个宏中,然后播放到EOF。
我第一次这样做时遇到了问题,但后来成功了,不知道我做了什么不同。
【讨论】:
【参考方案6】:Anton Largiader 的答案是最可靠的,包括复杂的内联 cmets。
但是,它会留下许多空行,包括带有空字符(空格、制表符...)的空行,所以我只需再添加一个步骤以使其几乎完美:
运行宏后,只需:
编辑 > 行操作 > 删除空行
或
编辑 > 行操作 > 删除空行(包含空白字符)
如果您只想删除 really 空行,第一个选项很好 第二个选项将删除每个空行,甚至包含空格等。因此代码块之间将不再有实际间距。第一个选项可能是最安全的,之后进行一些手动清理。
【讨论】:
【参考方案7】:正如有人在另一篇文章中建议的那样,最简单和最可靠的方法可能是使用 Menu Plugin-->NppExport-->Export to RTF 以 .RTF 格式导出所有文本,然后:
-在Word中打开新建的文件
-选择任何评论的任何部分
-在Word clic右上角选择-->选择所有格式相似的文本
-一次性删除所有选定的 cmets(如果不起作用,则删除或剪切)
【讨论】:
也许这行得通,但您绝对应该避免使用 Microsoft Word 或任何其他富文本编辑器进行代码编辑。【参考方案8】:如果有人觉得方便,删除 Powershell cmets:
使用 Notepad ++ 删除 Powershell 中的注释 只查找以 # 开头的行(而不是在该行的其他地方以 # 开头)。
-
Notepad++ 搜索菜单 > 查找
“标记”选项卡 - 填写如下。
选择“全部标记”(如果以前使用过,请清除所有标记)。
正则表达式 ^[#
enter image description here
-
搜索菜单>书签>删除(或在列表中使用
他们)
清除所有标记以重置
您可以通过执行以下操作来选择 no cmets just code:
正则表达式 ^[^#
enter image description here
【讨论】:
【参考方案9】:输入 ctrl+shift+K 删除评论
【讨论】:
我相信这会删除评论//
,但不会像 OP 要求的那样删除实际行(和所有 cmets)。以上是关于有没有办法使用 Notepad++ 删除文件中的所有注释?的主要内容,如果未能解决你的问题,请参考以下文章