原帖地址:http://www.jianshu.com/p/9515579baa18
build system运行外部的程序来处理你的项目文件并且打印捕获的输出到sublime的输出面板。最后,调用subprocess.Popen。
基本步骤
新建一个Build system
sublime-bulid-system.jpg
输入键值对(JSON格式) 例如构建less:
{
"shell_cmd":
"lessc \"$file\
" \"$file_path/$file_base_name.css\
"",
"selector":
"source.less",
"shell":
true
}
将untitled.sublime-build文件保存.config/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
转载请注明原文地址: https://ju.6miu.com/read-35688.html