2015-12-31 39 views
4

我使用MIT的方案和編輯文本崇高3.在構建系統的源文件,我設置的配置,以如何編輯Sublime文本3爲Scheme構建系統以允許從文件輸入?

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

--load選項不評估的代碼,也就是說,它只是加載代碼而不提供輸出。我應該如何設置配置選項,以便當我點擊ctrl+B時,它會給出與我在命令行中運行mit-scheme < filename.scm時相同的輸出?

謝謝!

+0

請澄清你的問題。 *「它不評估代碼」*是什麼意思?只是輸入命令不起作用,或者整個文件根本不運行?有沒有錯誤?如果是這樣,請在問題中添加**全文**。具有相同文件的相同命令是否在命令行上起作用?請用所有這些問題的答案來編輯你的問題,不要將它們置於評論中。 – MattDMo

+0

@MattDMo感謝您的建議,我已經更新了我的描述。隨意詢問它是否仍然不清楚。 – username123

回答

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,因此需要引用引號(即,顯示爲\"而不僅僅是")。

相關問題