代码之家  ›  专栏  ›  技术社区  ›  Paul Sasik

快速简便地删除“死”(注释掉)代码

  •  15
  • Paul Sasik  · 技术社区  · 15 年前

    我正在处理一个继承的代码库,它包含数千行注释掉的代码。我知道以前的编码员打算把他所有的辛勤工作留给子孙后代,而不是简单地删除它,但是:我永远不会读它,它只是妨碍了我。一个问题示例是,当我对某些代码段执行文本搜索时,在注释代码中会有几十个“假”点击。皮塔

    是否有一种快速/简单的方法来检测大量注释掉的代码?一个聪明的雷鬼?

    我正好在vb.net上工作,注释字符只是一个单引号。

    8 回复  |  直到 7 年前
        1
  •  13
  •   Hans Passant    15 年前

    可以使用正则表达式搜索。搜索

    ^.*'.*$
    

    找到带注释的单行。您可能希望找到至少3行以注释开头的行:

    ^.*'.*\n.*'.*\n.*'.*$
    

    让猫远离你的键盘。

        2
  •  4
  •   Frank V    15 年前

    恐怕我同意达菲莫的观点。我认为您不会找到一种可靠的自动删除注释掉的代码的方法。我敢肯定,如果你努力搜索,你会找到一个,但你的时间会更好地花在你的工作上。

    我在过去就遇到过这种情况(太频繁了),我最终做的是在处理各种模块时删除注释掉的代码。

    例如,我打开类人员进行更改,看到注释掉的代码尚未删除。我签出代码(我们使用VSS),删除坏代码,签入它,最后签出它来完成我的工作。

    这需要时间才能全部结束,但我觉得这是一个有效的时间使用来解决问题。

        3
  •  3
  •   Ben Aston    14 年前
    (^\s*//.*\n)^10
    

    查找 // 风格。

    注释掉的测试:

    \s*//\s*\[Test\].*\n
    
        4
  •  1
  •   Urbycoz    13 年前
        5
  •  1
  •   Taran    8 年前

    对于任何到此结束的C人员,使用以下regex查找注释掉的行。

    (^|[^/])//[^/]
    
        6
  •  0
  •   duffymo    15 年前

    这就是版本控制系统的用途。

    我会确保它在版本控制下(希望不是可视化的源代码安全),检查它,删除所有注释的代码,然后重新检查它。

    我也会劝阻您的开发团队今后的实践。

        7
  •  0
  •   p.campbell    15 年前

    我建议为Visual Studio编写或查找宏,以帮助删除注释。

    一些伪逻辑:

    • 从行号开始,读取第一个字符。记住这个行号。
    • if是vb注释字符 ' ,然后继续
    • 读下一行的第一个字符。如果是注释字符,则继续。
    • 当查找不是注释字符的行时,分析遍历的行数。
    • 如果遍历的行数与您的阈值 n ,然后删除它们。
        8
  •  0
  •   Kevin Whitefoot    7 年前

    我知道这是一条古老的线索,但帮助我的诀窍还没有被提及。

    我搜索这个regex:

    (^\s*’。 = \n)^

    它查找包含等号的注释掉的行。我的经验是,大多数注释掉的代码块都包含至少一行具有赋值和等号的代码,这在实际注释中非常少见。

    我不会自动进行替换,我只需按F3,如果它与一行匹配,我只需按Enter键将突出显示的文本替换为新行。如果它落在一个被注释掉的行块的一部分上,那么我只需手动选择,再次按Enter键和F3键。

    推荐文章