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