如何编辑Sublime text 3构建系统以允许从文件输入?

时间:2015-12-31 15:39:02

标签: scheme sublimetext3

我正在使用mit-scheme并使用Sublime Text 3编辑源文件。在构建系统中,我将配置设置为

{
    "cmd": ["mit-scheme", "--load", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.scheme"
}

但是--load选项不会评估代码,也就是说,它只是在不提供输出的情况下加载代码。我应该如何设置配置选项,以便当我点击ctrl+B时,它会提供与在命令行中运行mit-scheme < filename.scm时相同的输出?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果在构建系统中使用shell_cmd而不是cmd,则命令将直接由shell执行,就像您已将其输入终端一样。在Linux上,使用的shell是/bin/sh,而在Windows上,shell取自COMSPEC变量的值(请参阅Python Popen帮助,这是exec命令使用的帮助。执行程序)。

要使用shell_cmd,请指定字符串而不是字符串数组,并将字符串直接传递给要执行的shell。因此,您需要注意引用可能包含空格的任何参数。

例如,您的构建系统可能如下所示:

{
    "shell_cmd": "mit-scheme < \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.scheme"
}

请注意,此处$file包含在引号中,因此如果文件中包含空格,则该命令仍然有效。此外,由于构建系统是JSON,因此引号需要引用(即显示为\"而不仅仅是")。