build system运行外部的程序来处理你的项目文件并且打印捕获的输出到sublime的输出面板。最后,调用subprocess.Popen
。
基本步骤
新建一个Build system
输入键值对(JSON格式)
例如构建less:
{
"shell_cmd": "lessc \"$file\" \"$file_path/$file_base_name.css\"",
"selector": "source.less",
"shell": true
}
将untitled.sublime-build
文件保存到Sublime Text3/Packages/User
下,重新命名为less.sublime-build
。
选项
- shell_cmd:要执行的命令。
- file_regex:可选,正则表达式捕捉cmd的错误输出。
- line_regex:可选,当
file_regex
与该行不匹配,如果line_regex
存在,并且确实与当前行匹配, 则遍历整个缓冲区,直到与file regex
匹配的行出现,并用这两个匹配决定最终要跳转的文件 或行。 - selector:可选,当Build System被设置为 Automatic时,sublime使用这个选项来查找到当前窗口适合的Build System。
- working_dir:可选,在运行
cmd
前会切换到该目录。运行结束后会切换到原来的目录。 - encoding:可选,cmd输出流的编码。一定要是有效的Python编码。默认是utf-8(字符串类型)。
- target:可选,运行的Sublime Text命令,缺省为
exec
(Packages/Default/exec.py)。 - env:可选,在环境变量被传递给
cmd
前,将他们封装成词典。 - shell:可选,如果该选项为
true
,cmd
则可以通过shell运行。 - path:可选,该选项可以在调用
cmd
前替换当前进程的PATH 。原来的PATH 将在运行后恢复。使用这个选项可以在不修改系统设置的前提下将目录添加到PATH 中。
使用 file_regex
获取错误输出
file_regex
选项用Perl的正则表达式来捕获构建系统的错误输出,主要包括四部分内容,分别是 file name、 line number、 column number和error message。Sublime Text 在匹配模式中使用分组的方式捕获信息。file name和line number域是必须的。
当错误信息被捕获时,你可以使用F4
和 Shift+F4
在你的项目文件中跳转。被捕获的错误信息会显示在状态栏。
平台相关选项
windows
,osx
以及linux
元素可以帮助你在构建系统中设定平台相关。
构建系统变量
- $file_path 当前文件所在路径, 比如 C:\Files.
- $file 当前文件的完整路径, 比如 C:\Files\Chapter1.txt.
- $file_name 当前文件的文件名, 比如 Chapter1.txt.
- $file_extension 当前文件的扩展名, 比如 txt.
- $file_base_name 当前文件仅包含文件名的部分, 比如 Document.
- $packages Packages 文件夹的完整路径.
- $project 当前项目文件的完整路径.
- $project_path 当前项目文件的路径.
- $project_name 当前项目文件的名称.
- $project_extension 当前项目文件的扩展部分.
- $project_base_name 当前项目仅包括名的部分.
变量用法
可以在代码片段上中使用以上变量。
${project_name:Default}
如果当前项目存在则使用该项目名称,否则则使用Default
替代。
${file/\.php/\.txt/}
该例会获取当前文件的完整路径,并用.txt
替换路径中的.php
。
运行构建系统
ctrl+b或者F