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

2024-04-13

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

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

语法突出显示似乎在突出显示注释方面做得相当好,但命令面板中似乎没有任何命令可以删除所有注释。

有没有办法利用 SublimeText 中的语法突出显示功能来删除不同语言的源文件中的所有注释?


基于 nhahtdh 的answer https://stackoverflow.com/a/26286880/1426065,以下插件应该适用于 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...) as remove_comments.py。您现在可以通过控制台运行插件,或将组合键绑定到它。要通过控制台运行,只需键入

view.run_command('remove_comments')

控制台中,当前视图下的所有评论都会被删除。

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

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

Save the file, and you can now hit CtrlAltShiftR (or whatever key combination you choose) and all comments in the current file will be deleted.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们可以利用语法高亮功能来删除 SublimeText 源文件中的所有注释吗? 的相关文章

  • 您能解释一下流的概念吗?

    我知道流是字节序列的表示 每个流都提供了向其给定的后备存储读取和写入字节的方法 但流的意义何在 为什么我们与之交互的不是后备存储本身 不管出于什么原因 这个概念并不适合我 我读过很多文章 但我想我需要一个类比或其他东西 选择 流 这个词是因
  • 获取 Disqus html 代码以显示在源代码中以实现 SEO 目的

    最近开始在网站上使用 Disqus 想知道是否有任何方法可以让实际的 html 代码显示在源页面中 我注意到这个网站正在这样做 http adamkaras com blog 2009 06 24 disqus custom css sty
  • 您能解释一下流的概念吗?

    我知道流是字节序列的表示 每个流都提供了向其给定的后备存储读取和写入字节的方法 但流的意义何在 为什么我们与之交互的不是后备存储本身 不管出于什么原因 这个概念并不适合我 我读过很多文章 但我想我需要一个类比或其他东西 选择 流 这个词是因
  • 如何正确区分树(即嵌套的字符串列表)?

    我正在使用由嵌套字符串列表组成的数据类型的在线编辑器 请注意 如果每次更改单个值时我都要传输整个结构 那么流量可能会变得难以忍受 所以 为了减少流量 我想到了应用 diff 工具 问题是 如何找到并报告两棵树的差异 例如 ah bh ha
  • 基于正方形瓷砖直角三角形象限的坐标系中的边界框

    我正在为游戏创建一个基于图块的 2D 地形系统 然而 我还使用游戏中的坐标 需要能够将边界框映射到 图块坐标 中 并点击边界框接触的每个图块 不用担心 有一个 kd 树和所有工作 美好的 使用定点 真实世界 坐标 我可以将每个图块计为 2
  • Sublime 代码折叠注释(如 Ace 中)

    在 Cloud9 基于 Ace 编辑器 中 我可以在注释中定义任意代码折叠区域 例如 Descriptor function Code 折叠为 Descriptor lt gt 在这里尝试看看我的意思 http ace c9 io buil
  • 链表、数组和硬件内存缓存

    虽然之前有人问过关于链表与数组的问题 但答案大多归结为我们大多数人在某些时候可能已经学到的东西 列表擅长插入和删除 数组擅长随机访问 现在 像 Bjarne Stroustrup 这样受人尊敬的人已经argued https www you
  • WordPress 评论回复链接不出现

    我正在使用自定义代码来打印评论 但问题是无论我做什么 我都无法在任何评论下打印评论回复链接 这是代码
  • 边界椭圆约束于水平/垂直轴

    背景 我正在尝试将地形图裁剪成围绕多个风力涡轮机的最小尺寸椭圆 以最小化地图的尺寸 执行此地图裁剪的程序可以裁剪椭圆 但仅限轴沿 x 轴和 y 轴对齐的椭圆 我知道边界椭圆问题的算法 https stackoverflow com ques
  • 独立于符号的字符串的模式匹配

    我需要一种算法 可以在数据中找到预定义的模式 以字符串的形式存在 独立于数据和模式的实际符号 字符 我只关心符号之间的关系 而不关心符号本身 数据中的同一符号具有不同的模式符号也是合法的 模式匹配算法必须强制执行的唯一一件事是保留模式中同一
  • Big O 用于有限、固定大小的可能值集

    这个问题 https stackoverflow com questions 12305028 java what is the best way to find first duplicate character in a string引
  • #ifdef MACRO 相当于注释吗

    假设 MACRO 没有定义 这些是等价的 ifdef MACRO Not valid C or C code endif Not valid C or C code 在 GCC 4 7 1 中 它似乎是等效的 但是否有预处理器可以做更多的事
  • 如何检查一个盒子是否适合另一个盒子(允许任何旋转)

    假设我有两个盒子 每个盒子都是一个长方体 http en wikipedia org wiki Rectangular cuboid aka长方体 我需要编写一个函数来决定盒子是否具有尺寸 一 二 三 可以装入具有尺寸的盒子中 甲 乙 丙
  • Lockfree 标准集合和教程或文章

    有人知道用于无锁常用数据类型的实现 即源代码 的好资源吗 我正在考虑列表 队列等 锁定实现非常容易找到 但我找不到无锁算法的示例以及 CAS 的工作原理以及如何使用它来实现这些结构 查看 Julian M Bucknall 的博客 他 详细
  • Sublime 2,如何自动关闭HTML标签并将光标放在标签内

    我试图弄清楚如何让 Sublime 2 创建以下行为 Type strong Sublime 然后会立即打印 strong strong 然后你的光标将被放置在标签内 我觉得它在不超过几个月前自动执行了此操作 或者也许我只是产生幻觉 或者正
  • 包围一组点的多边形

    我有一组 S 点 2D 由 x 和 y 定义 我想找到 P 包围该组所有点的最小 含义 具有最少数量的点 多边形 P 是S 有没有已知的算法来计算这个 我在这个领域缺乏文化令人惊讶 感谢您的帮助 对于这个问题有很多算法 它被称为 最小边界框
  • 生成所有多集大小为 n 的分区的算法

    我一直在试图找出一种方法来生成多重集的所有不同的大小为 n 的分区 但到目前为止却空手而归 首先让我展示一下我想要实现的目标 假设我们有一个输入向量uint32 t std vector
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 如何在 Visual Studio 2010 中处理 TODO 注释?

    我希望 Visual Studio 列出开头包含 TODO 的所有行 通常在注释符号之后 注释符号可能会根据文件类型而变化 这些行可以在解决方案中的任何文本文件中找到 无论是 C VB F T SQL ASPX XAML 或只是 TXT 在
  • 如果文件为空,如何跳过文件行

    python 3中的程序 这是我的第一个涉及文件的程序 我需要忽略注释行 以 开头 和空行 然后拆分这些行 以便它们可迭代 但我不断收到 IndexError 消息 指出字符串索引超出范围 并且程序在空行处崩溃 import os path

随机推荐