Comments TEXTMATE:从文档中删除注释

Comments TEXTMATE:从文档中删除注释,comments,textmate,Comments,Textmate,我知道你可以用它来删除空行 sed /^$/d 这将删除以开头的注释# 但是如何删除所有以//?开头的注释,只需用反斜杠“转义”斜杠即可 /\/\// ^运算符将其绑定到行的前面,因此您的示例将只影响从第一列开始的注释。您也可以尝试在其中添加空格和制表符,然后使用交替运算符|在两个注释标识符之间进行选择 /^[ \t]*(\/\/|$)/ 编辑: 如果您只是想从文件中删除注释,则可以执行以下操作: /(\/\/|$).*/ 我不知道结尾的'd'运算符是做什么的,但是上面的表达式应该与必须

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

sed /^$/d
这将删除以开头的注释#

但是如何删除所有以//?

开头的注释,只需用反斜杠“转义”斜杠即可

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

/^[ \t]*(\/\/|$)/
编辑: 如果您只是想从文件中删除注释,则可以执行以下操作:

/(\/\/|$).*/
我不知道结尾的'd'运算符是做什么的,但是上面的表达式应该与必须转义圆括号或交替运算符(“|”字符)的模匹配

编辑2: 我刚刚意识到,使用Mac电脑可能是在“炮击”该命令并使用系统sed。在这种情况下,您可以尝试在搜索模式周围加上引号,这样外壳就不会对您所有的魔法角色做任何疯狂的事情。:)在本例中,“d”表示“删除模式空间”,所以在我给出的最后一个示例后加上一个“d”,就可以设置了

编辑3: 哦,我刚刚意识到,如果你没有捕捉到引号中的内容,你需要小心(即,如果是字符串,你不想从#到行尾删除!)。不幸的是,在这种情况下,regexp变得相当复杂,除非您放弃检查带有字符串的行以获取注释。。。但是您需要使用替换操作来sed,而不是搜索和删除匹配项。。。你需要更多的逃跑,这会变得疯狂。我建议搜索一个在线sed助手(有很多优秀的regex测试人员,也许有一个sed测试人员?)


很抱歉在这一点上放弃了这个项目。这个“问题”是sed可以解决的,但它在每个阶段都会变得更加复杂,而不是仅仅用一点Python来解决。

第一个问题可以解决,但第二个问题给了我一个错误。我想删除整个文档中的所有注释,不管它们是否在一行的开头。我不知道TextMate的正则表达式实现的细节,但您可以尝试转义括号(例如,您必须在默认Vim中转义它们,以使它们作为分组标记工作)。
/(\/\/|$).*/