热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

具有选项的Sublime文本构建系统-SublimeTextBuildSystemWithOptions

Ihavevariousshellbuildscriptsforaprojectandwanttocreateonecentralizedbuildsystemwit

I have various shell build scripts for a project and want to create one centralized build system with options that will allow which shell script to run. For example, a user presses Cmd + B then the user is given the option:

我有一个项目的各种shell构建脚本,并希望创建一个集中构建系统,其中包含允许运行哪个shell脚本的选项。例如,用户按下Cmd + B,然后为用户提供选项:

1) shellscript1.sh
2) shellscript2.sh
3) shellscript3.sh

1)shellscript1.sh 2)shellscript2.sh 3)shellscript3.sh

The user presses 3 and Sublime Text runs 'sh shellscript3.sh'.

用户按3,Sublime Text运行'sh shellscript3.sh'。

I've been reading http://sublimetext.info/docs/en/reference/build_systems.html, but am unsure how to integrate this option in the JSON code for the Sublime Text build system.

我一直在阅读http://sublimetext.info/docs/en/reference/build_systems.html,但我不确定如何在Sublime Text构建系统的JSON代码中集成此选项。

How do you accomplish this in a build system in Sublime Text 2?

你如何在Sublime Text 2的构建系统中实现这一目标?

Thanks!

3 个解决方案

#1


2  

Actually, you do not need your own plugin. All you need are build variants. Here's simple example using your example commands:

实际上,您不需要自己的插件。您只需要构建变体。以下是使用示例命令的简单示例:

{
  "name Script 1",
  "cmd": ["shellscript1.sh", "$file"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${project_path:${folder:${file_path}}}",

  "variants":
  [
    {
      "name": "Script 2",
      "cmd": ["shellscript2.sh", "$file"]
    },
    {
      "name": "Script 3",
      "cmd": ["shellscript3.sh", "$file"]
    }
  ]
}

Save this in your User preferences folder as MyScript.sublime-build. You will then be able to select it from the build menu, turning off the automatic target.

将其作为MyScript.sublime-build保存在用户首选项文件夹中。然后,您可以从构建菜单中选择它,关闭自动目标。

Now, when you press Command+B (on Mac, Control+B on Windows and Linux), the default target executes Script 1, on your file, but you can also select either of the variants.

现在,当您按下Command + B(在Mac上,在Windows和Linux上为Control + B)时,默认目标会在您的文件上执行脚本1,但您也可以选择其中一个变体。

See this answer, also, for a build file that I personally use providing variants for different Make targets.

对于我个人使用的构建文件,请参阅此答案,为不同的Make目标提供变体。

#2


1  

I don't know enough python to give you the specific code, but it looks like you need to write your own exec.py to handle an array of the commands and provide the control logic. Then in the JSON file, you would just need to write the value of the "cmd" key as [["first cmd"], ["second cmd"],..., ["last cmd"]],.

我不知道足够的python给你特定的代码,但看起来你需要编写自己的exec.py来处理命令数组并提供控制逻辑。然后在JSON文件中,您只需要将“cmd”键的值写为[[“first cmd”],[“second cmd”],...,[“last cmd”]] ,.

I'm following this question; I really like your idea.

我正在关注这个问题;我真的很喜欢你的主意。

#3


1  

I ended up making my own plugin and placed the following in run():

我最终制作了自己的插件并将以下内容放在run()中:

self.view.window().run_command('exec', {'cmd': ['sh', 'script.sh'], 'quiet': False})        

I based it off of the code of this Git Support plugin: https://github.com/notanumber/gitst2

我基于这个Git支持插件的代码:https://github.com/notanumber/gitst2


推荐阅读
  • 本文详细介绍了在 Sublime Text 中配置 Lua 编译环境的方法与实际操作步骤。首先,用户需获取 `lua.exe` 和 `luac.exe`,可通过安装 Lua for Windows 或 SciTE 实现,也可自行编译源代码。接着,将 `lua.exe` 的路径(如 C:\Program Files\Lua\)添加至系统环境变量中,确保命令行可全局调用。此外,文中还提供了配置 Sublime Text 构建系统的具体设置,帮助开发者高效调试 Lua 脚本。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • IamcleaningtextinR.Mytexthastheform我在R中清理文本。我的文字有表格buthecouldnotavoidthesubje ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 本文深入解析了 jQuery 中用于扩展功能的三个关键方法:`$.extend()`、`$.fn` 和 `$.fn.extend()`。其中,`$.extend()` 用于扩展 jQuery 对象本身,而 `$.fn.extend()` 则用于扩展 jQuery 的原型对象,使自定义方法能够作为 jQuery 实例的方法使用。通过这些方法,开发者可以轻松地创建和集成自定义插件,增强 jQuery 的功能。文章详细介绍了每个方法的用法、参数及实际应用场景,帮助读者更好地理解和运用这些强大的工具。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 使用 `git stash` 可以将当前未提交的修改保存到一个临时存储区,以便在后续恢复工作目录时使用。例如,在处理中间状态时,可以通过 `git stash` 命令将当前的所有未提交更改推送到一个新的储藏中,从而保持工作目录的整洁。此外,本文还将详细介绍如何解决 `git stash pop` 时可能出现的冲突问题,帮助用户高效地管理代码变更。 ... [详细]
  • 利用Java开发功能完备的电话簿应用程序,支持添加、查询与删除操作
    本研究基于Java语言开发了一款功能全面的电话簿应用程序,实现了与数据库的高效连接。该应用不仅支持添加、查询和删除联系人信息,还具备输出最大和最小ID号的功能,并能够对用户输入的ID号进行有效性验证,确保数据的准确性和完整性。详细实现方法可参阅相关文档。 ... [详细]
  • 本文深入探讨了 Python Watchdog 库的使用方法和应用场景。通过详细的代码示例,展示了如何利用 Watchdog 监控文件系统的变化,包括文件的创建、修改和删除等操作。文章不仅介绍了 Watchdog 的基本功能,还探讨了其在实际项目中的高级应用,如日志监控和自动化任务触发。读者将能够全面了解 Watchdog 的工作原理及其在不同场景下的应用技巧。 ... [详细]
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
author-avatar
caiyafang4376
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有