language-agnostic - 我们可以利用语法高亮功能从 SublimeText 中的源文件中删除所有注释吗?

标签 language-agnostic comments sublimetext

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

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

语法高亮似乎在高亮注释方面做得很好,但是在命令面板中似乎没有任何命令可以删除所有注释。

有什么方法可以利用 SublimeText 中的语法高亮功能来去除不同语言源文件中的所有注释吗?

最佳答案

基于 nhahtdh 的 answer ,以下插件应该适用于 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)

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

view.run_command('remove_comments')

在控制台中,将删除当前 View 中的所有评论。

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

{ "keys": ["ctrl+alt+shift+r"], "command": "remove_comments" }

保存文件,您现在可以按 CtrlAltShiftR(或任何您想要的组合键选择),当前文件中的所有评论将被删除。

关于language-agnostic - 我们可以利用语法高亮功能从 SublimeText 中的源文件中删除所有注释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286879/

相关文章:

language-agnostic - 接口(interface)与公共(public)类成员

c++ - 如何在 OpenCV 中以编程方式在 YAML 中编写注释?

css - 在 Regexp 中匹配 CSS 注释

c# - 如何使用 HTML 敏捷包注释掉 html 文档中的所有脚本标签

language-agnostic - 确定源文件中使用的制表符宽度的好方法是什么?

algorithm - 查找作为其他字符串前缀的字符串

algorithm - 旅行票问题

php - 在哪里可以找到 composer 的全局包?

ide - Sublime Text 3、索引和 goto 符号/goto 定义

sublimetext - 设置所有标签和所有打开文件的行尾