【问题标题】:Is there a way to delete all comments in a file using Notepad++?有没有办法使用 Notepad++ 删除文件中的所有注释?
【发布时间】:2012-02-03 14:53:24
【问题描述】:

Notepad++ 显然可以识别所有 cmets。有没有办法简单地删除所有?

编辑: Stat-R 的书签方法有很大帮助,不仅对于删除 cmets,而且对于一般有条件地删除行。

【问题讨论】:

  • 如果你还想得到答案...你想删除被评论的行吗?
  • 嗨 Cos,请查看我的回答以获取行注释。

标签: comments notepad++


【解决方案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 中的注释 只查找以 # 开头的行(而不是在该行的其他地方以 # 开头)。

      1. Notepad++ 搜索菜单 > 查找
      2. “标记”选项卡 - 填写如下。
      3. 选择“全部标记”(如果以前使用过,请清除所有标记)。

      正则表达式 ^[#}

      enter image description here

      1. 搜索菜单>书签>删除(或在列表中使用 他们)
      2. 清除所有标记以重置

      您可以通过执行以下操作来选择 no cmets just code:

      正则表达式 ^[^#}

      enter image description here

      【讨论】:

        【解决方案9】:

        输入 ctrl+shift+K 删除评论

        【讨论】:

        • 我相信这会删除评论 //,但不会像 OP 要求的那样删除实际行(和所有 cmets)。
        猜你喜欢
        • 1970-01-01
        • 2014-10-29
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 2012-11-12
        • 2014-08-10
        • 2018-11-07
        • 2020-02-06
        相关资源
        最近更新 更多