【发布时间】:2010-10-07 20:42:24
【问题描述】:
每隔一段时间,我的代码中就会出现许多无用的 cmets,其中大部分是过时的代码行,还有一些是过时的“自我备忘录”。
所以我想知道是否有办法只选择一个代码部分,并使用一些神奇的组合键或宏,删除所有这些。
谢谢。
【问题讨论】:
标签: visual-studio-2010 macros keyboard-shortcuts
每隔一段时间,我的代码中就会出现许多无用的 cmets,其中大部分是过时的代码行,还有一些是过时的“自我备忘录”。
所以我想知道是否有办法只选择一个代码部分,并使用一些神奇的组合键或宏,删除所有这些。
谢谢。
【问题讨论】:
标签: visual-studio-2010 macros keyboard-shortcuts
也删除 cmets 之前的所有空格。
(\t+|\s+|\r\n)((/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*))
【讨论】:
打开文档,按 Ctrl+H 或找到并打开“快速替换”
1 启用正则表达式 (Alt+E)
2 在 Find FieldBox 中,写
//.* 或 /*.*
3 在 Replace FieldBox 中,将其保留为空或放置您选择的文本。
注意:/* */ - 多行注释删除有限制
【讨论】:
/\*.*\*/
1.//.*?\n
2./\*(.|\n)*?\*/
这些 RE 还将删除多行 cmets。 (只需使用打开正则表达式的查找和替换)。
【讨论】:
我相信 VS 中的搜索和替换允许使用正则表达式,搜索“//(任何到行尾的内容”或“/*(任何内容)*/”并替换为“”很容易。
因为这是 c++(我认为),所以可以编写正则表达式,这样它就不会找到“转义”的 cmets。
【讨论】:
我想把这两个答案结合起来,写出我自己的答案。
打开文档,按 Ctrl+H 或找到并打开“快速替换”(See Arpan's answer)
按 Alt+E 启用正则表达式
在 Find FieldBox 中,编写如下正则表达式 (See Jonmeyer's answer)
(\t+|\s+|\r\n)((/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*))
在“替换字段框”中,将其留空或放入您选择的文本。
例如:
【讨论】:
您还可以使用this Visual Studio 扩展来删除代码中的 cmets。 只需查看该链接,您就会找到有关如何删除 cmets 的说明。
【讨论】:
您没有在问题中指定语言。以上答案适用于 c#。
对于 Visual Basic,搜索正则表达式 '.*$ 并替换为空将删除所有 cmets。
【讨论】:
/\*. * \ * / 使用它来查找长注释行。 (删除空格。)
你也可以看here
【讨论】: