【问题标题】:Extend Sublime Text 3 build options扩展 Sublime Text 3 构建选项
【发布时间】:2017-01-11 18:23:09
【问题描述】:

我正在使用 Sublime Text 3 中的 AVR 包。如果我使用 CMD-SHIFT-B(构建方式),我会得到选项 Make 和 Make - Clean。

我想添加选项以在 Make 文件中执行其他部分。具体来说,我想要一个选项 Make - Avrdude 来运行 avrdude 来对 Atmel 进行编程。我可以从命令行执行此操作,但不能从 Sublime 执行此操作。

如何添加到 Build With 选项?

【问题讨论】:

    标签: makefile sublimetext3


    【解决方案1】:

    Sublime 中的构建系统是通过 sublime-build 文件定义的,这些文件是 JSON 格式的文件,告诉它如何执行构建。这些包括至少一个用于基本构建的选项,并且可以包括 0 个或多个稍微修改命令的“变体”。

    用于调用make 的构建系统称为Make.sublime-build,位于Makefile 包中。查看该文件内容的最简单方法是使用PackageResourceViewer

    默认情况下,它看起来像这样(从 Sublime Build 3126 开始):

    {
        "shell_cmd": "make",
        "file_regex": "^(..[^:\n]*):([0-9]+):?([0-9]+)?:? (.*)$",
        "working_dir": "${folder:${project_path:${file_path}}}",
        "selector": "source.makefile",
        "syntax": "Packages/Makefile/Make Output.sublime-syntax",
        "keyfiles": ["Makefile", "makefile"],
    
        "variants":
        [
            {
                "name": "Clean",
                "shell_cmd": "make clean"
            }
        ]
    }
    

    主体提供shell_cmd 以调用make 以及所需的所有其他构建选项,variants 部分允许您覆盖其中一些设置以执行不同的操作。您在变体中未覆盖的任何内容都使用基本设置。

    为了添加额外的变体,您只需将它们添加到具有不同名称和要使用的命令的变体数组中。例如,我的变体部分如下所示:

    "variants":
    [
        {
            "name": "Clean",
            "shell_cmd": "make clean"
        },
        {
            "name": "Run",
            "shell_cmd": "make run"
        }
    ]
    

    重要提示:该文件为 JSON 格式,如果您的格式错误(因此 Sublime 无法解析该文件)不会生成错误消息,该文件将被忽略。

    解决此问题的一种方法是覆盖默认文件。要使用 PackageResourceViewer,请从命令面板中选择 PackageResourceViewer: Open ResourceTools > Command Palette 或您平台的相关键),选择 Makefile,然后选择 Make.sublime-build

    这将打开文件,允许您对其进行修改。当您保存它时,您保存的文件将覆盖内置版本,这意味着无论您现在如何访问构建,它都会以相同的方式工作并且您的新选项将出现。然而,这确实掩盖了对构建文件的任何官方更改(例如,如果 Sublime 的未来构建修改了此文件)。

    您也可以执行与上述类似的操作,只是不保存文件,而是使用 Save As 并将其保存到您的 User 包中。如果你走这条路,你需要从Tools > Build System 菜单中手动选择你的构建来使用它。请注意,您为文件指定的名称控制了出现在菜单中的名称,因此如果您将其命名为与默认名称相同的名称,则相同的名称将在该菜单中出现两次。

    第三种选择是将构建设置直接存储在您的 sublime-project 文件中(如果您正在使用),在这种情况下,自定义构建仅在该项目内部可用。在这种情况下,您仍然需要手动选择构建。

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 2015-03-01
      • 2013-10-14
      相关资源
      最近更新 更多