【问题标题】:How to edit Sublime text 3 build system for Scheme to allow input from file?如何为 Scheme 编辑 Sublime text 3 构建系统以允许从文件输入?
【发布时间】:2016-04-05 13:12:37
【问题描述】:

我正在使用 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 时相同的输出?

谢谢!

【问题讨论】:

  • 请澄清您的问题。 “它不评估代码” 是什么意思?只是输入命令不起作用,还是整个文件根本不运行?有没有错误?如果是这样,请将全文添加到问题中。具有相同文件的相同命令是否在命令行上工作?请edit您的问题以及所有这些问题的答案,不要将它们放在 cmets 中。
  • @MattDMo 感谢您的建议,我已经更新了我的描述。如果还不清楚,请随时询问。

标签: scheme sublimetext3


【解决方案1】:

如果您在构建系统中使用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,因此需要引用引号(即显示为 \" 而不仅仅是 ")。

【讨论】:

    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2015-03-01
    • 2013-10-14
    • 1970-01-01
    相关资源
    最近更新 更多