有没有办法使用 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++ 删除文件中的所有注释?的主要内容,如果未能解决你的问题,请参考以下文章

无法将notepad++添加到打开方式列表中的解决办法

Notepad ++中的正则表达式删除空行

删除 Notepad++ 中的空行

有没有办法为 Notepad++ 安装 JSX 语法高亮/样式?

如何将字体导入Notepad ++?

Notepad++ 崩溃时丢失代码行