TEXTMATE:从文档中删除评论

时间:2010-08-25 00:24:57

标签: comments textmate

我知道你可以用它来删除空行

sed /^$/d

这将删除以#

开头的评论
sed /^#/d

但如何删除以//?

开头的所有评论

1 个答案:

答案 0 :(得分:2)

你只需要用反斜杠“逃避”斜杠。

/\/\//

^运算符将它绑定到行的前面,因此您的示例将仅影响从第一列开始的注释。您也可以尝试在其中添加空格和制表符,然后使用交替运算符|在两个评论标识符之间进行选择。

/^[ \t]*(\/\/|$)/

修改 如果您只是想从文件中删除注释,那么您可以执行以下操作:

/(\/\/|$).*/

我不知道最后的'd'运算符是什么,但上面的表达式应该匹配你模数必须转义括号或交替运算符('|'字符)

编辑2: 我刚刚意识到使用Mac你可能正在“炮轰”该命令并使用系统sed。在这种情况下,您可以尝试在搜索模式周围加上引号,这样shell就不会对您的所有魔术角色做任何疯狂的事情。 :)在这种情况下,'d'表示“删除模式空间”,所以只需在我给出的最后一个例子之后加上'd',你应该设置。

编辑3: 哦,我刚才意识到,你要小心,如果你没有抓住引号内的内容(即你不想从#删除它到行尾,如果它在一个字符串中!)。不幸的是,在这种情况下,regexp变得相当复杂,除非你只是放弃检查带有字符串的行以进行注释。 ...但是你需要使用替换操作来进行sed而不是搜索和删除匹配。 ......而且你需要进行更多的逃避,它会变得疯狂。我建议搜索一个在线sed帮助器(那里有很好的正则表达式测试器,也许有一个用于sed?)。

很抱歉在这一点上放弃了这个项目。这个“问题”是sed可以做到的问题,但它在每个阶段都变得非常复杂,而不是只是煽动一些Python来做它。