我有一堆用不同语言编写的源文件,我想从源文件中删除所有注释。
虽然编写正则表达式当然是一种选择,但取决于输入文件,我可能不得不处理表示注释的字符出现在字符串文字中的情况。还需要维护不同语言的正则表达式列表。
语法高亮似乎在高亮注释方面做得很好,但是在命令面板中似乎没有任何命令可以删除所有注释。
有什么方法可以利用 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/