0

0

sublime中如何设置自定义的Build System编译系统?(万能运行)

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-03-07 14:25:14

|

787人浏览过

|

来源于php中文网

原创

sublime text 的 build system 文件必须置于 packages/user/ 目录下,后缀为 .sublime-build;跨平台推荐使用 cmd 数组语法,变量仅在 cmd 或 shell_cmd 中生效;万能运行需设 selector 为 "source | text" 并用 shell 脚本判断后缀;调试时注意 stderr 重定向与环境路径一致性。

sublime中如何设置自定义的build system编译系统?(万能运行)

Build System 文件必须放在 Packages/User/ 目录下

Sublime Text 的 Build System 不会从任意路径加载,只认 Packages/User/ 这个固定位置。如果你把 .sublime-build 文件丢在桌面或项目根目录,它根本不会出现在 Tools → Build System 菜单里。

  • Windows:打开 Preferences → Browse Packages…,进 User/ 文件夹
  • macOS:菜单栏 Sublime Text → Preferences → Browse Packages…,同样进 User/
  • Linux:通常在 ~/.config/sublime-text-3/Packages/User/
  • 文件名随意,但后缀必须是 .sublime-build,比如 RunPython.sublime-build

shell_cmd 还是 cmd?看系统和命令类型

Windows 上直接写 python $file 会失败——因为 cmd 不认识 $file 这种变量;而 macOS/Linux 的 shell(bash/zsh)能解析。所以跨平台兼容的写法得靠 cmd + 数组形式,让 Sublime 自己拼接:

{
    "cmd": ["python", "$file"],
    "selector": "source.python",
    "file_regex": "^.*?([^:]*):([0-9]+):?([0-9]+)?:? (.*)$"
}
  • shell_cmd 适合简单命令、带管道或重定向的场景(如 shell_cmd: "python $file 2>&1"),但 Windows 下需确保用的是 PowerShell 或已启用 shell: true
  • cmd 更可控,尤其对空格路径、多参数命令更安全,推荐优先用
  • $file$file_path$file_base_name 这些变量只有在 cmd 数组或 shell_cmd 字符串里才生效,不能用在其他字段中

如何让一个 Build System “万能运行”当前文件(不管后缀)?

关键不是删掉 selector,而是把它设成宽泛匹配,再配合脚本判断实际类型。最简方案是去掉 selector,但副作用是它会出现在所有文件的构建菜单里,容易误点。更稳妥的做法是用 selector 匹配通用范围:

AskAI
AskAI

无代码AI模型构建器,可以快速微调GPT-3模型,创建聊天机器人

下载
{
    "cmd": ["sh", "-c", "case $1 in *.py) python $1 ;; *.js) node $1 ;; *.rb) ruby $1 ;; *) echo 'Unsupported extension'; exit 1 ;; esac", "_", "$file"],
    "selector": "source | text",
    "variants": [
        {
            "name": "Run with args",
            "cmd": ["sh", "-c", "read -p 'Args: ' args; $1 $2 $args", "_", "python", "$file"]
        }
    ]
}
  • selector: "source | text" 表示所有源码类或纯文本文件都可触发该构建系统
  • 真正“万能”的逻辑要靠 shell 脚本或外部包装器判断后缀,避免硬编码一堆 if 在 JSON 里
  • 别信网上抄来的 "selector": "",Sublime 会忽略空字符串,等于没设
  • 如果想支持中文路径,Windows 下务必用 cmd + chcp 65001 前置,否则 python 读文件可能报 UnicodeDecodeError

调试 Build System 失败时,先看 Tools → Build Results

构建失败不报错?或者报错但看不懂?不是 Sublime 坏了,大概率是输出被吞了或编码乱了。默认情况下,错误信息走 stderr,但 Sublime 只捕获 stdout,除非你显式重定向:

  • "quiet": false 确保输出不被压制
  • Windows 下 cmd 默认不输出 stderr 到控制台,改用 "cmd": ["cmd", "/c", "python $file 2>&1"]
  • macOS/Linux 如果用 shell_cmd,记得末尾加 2>&1,不然 Python 的 traceback 就消失了
  • 最有效的调试方式:临时把 cmd 改成 ["echo", "$file"],确认变量是否被正确展开

真正的坑不在语法,而在路径、编码、权限这三块。比如 macOS 上用 #!/usr/bin/env python3 写的脚本,Build System 却调用了系统自带的 python(即 Python 2.7),结果语法错误——这种问题得靠 which pythonecho $PATH 对齐环境。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

453

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

331

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

845

2023.08.22

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

718

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

23

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号