我们是否可以使用语法突出显示功能从SublimeText中的源文件中删除所有注释?

nha*_*tdh 2 language-agnostic comments sublimetext

我有一堆用不同语言编写的源文件,我想从源文件中删除所有注释.

虽然编写正则表达式当然是一种选择,但根据输入文件,我可能必须处理表示注释的字符出现在字符串文字中的情况.还需要维护不同语言的正则表列表.

语法高亮似乎在突出显示注释方面做得相当不错,但似乎没有任何命令可以删除命令选项板中的所有注释.

有没有办法利用SublimeText中的语法高亮功能从不同语言的源文件中删除所有注释?

Mat*_*DMo 8

根据nhahtdh的回答,以下插件应该适用于Sublime Text 2和3

import sublime_plugin


class RemoveCommentsCommand(sublime_plugin.TextCommand):

    def run(self, edit):
        comments = self.view.find_by_selector('comment')
        for region in reversed(comments):
            self.view.erase(edit, region)
Run Code Online (Sandbox Code Playgroud)

使用Python语法创建一个新文件,并将上面的代码粘贴到其中.将文件保存在Packages/User目录中(可通过Preferences -> Browse Packages...)访问remove_comments.py.您现在可以通过控制台运行插件,也可以将组合键绑定到它.要通过控制台运行,只需键入即可

view.run_command('remove_comments')
Run Code Online (Sandbox Code Playgroud)

在控制台中,将删除当前视图中的所有注释.

要绑定组合键,请打开Preferences -> Key Bindings-User并添加以下内容([]如果文件为空,则用方括号括起来):

{ "keys": ["ctrl+alt+shift+r"], "command": "remove_comments" }
Run Code Online (Sandbox Code Playgroud)

保存文件,您现在可以点击CtrlAltShiftR(或您选择的任何组合键),并删除当前文件中的所有注释.