设置远程Sublime Text构建系统

时间:2015-11-09 23:51:55

标签: python sublimetext3 build-system

我需要帮助设置远程构建系统。

我在下面的构建系统在远程服务器上调用python,但问题是文件路径。

我将远程服务器映射到我的W:驱动器,所以当我调用构建系统时,它会执行。

python W:\path\to\script.py

需要执行

python /home/me/path/to/script.py instead.

我想做的是替换" \" for" /"和" W:" for" / home / me /"

{
"shell_cmd": "python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"variants":
[
    {
        "name": "Remote Python",
        "shell_cmd": "C:/Users/me/Documents/Common/Putty/plink -v -l myName -pw myPass 192.168.0.10 python \"${file}\"",
    }
]

}

我尝试了Build System Variables的组合,但没有运气。

我还硬编码了" / home / me"部分,但我仍然需要访问其他文件夹ie)" path / to /"。

我相信答案将涉及使用" sed"但我不能让它发挥作用......

2 个答案:

答案 0 :(得分:1)

您可以在构建系统变量中使用基于regex的PCRE substitutionsformat strings。所以,而不是

\"${file}\"

plink命令中,使用以下命令:

\"${file/w:/\/home\/me/i}\"

Sublime会自动将路径分隔符从\更改为/,因此我们不必担心这一点。我们需要做的就是找到w:并将其替换为/home/me/字符将被转义,因为/也用于分隔正则表达式的不同部分)。最后的i是不区分大小写的标记,因此它可以与w:W:一起使用。

我目前无法访问Windows框来测试它,但它应该可以正常工作。

答案 1 :(得分:1)

在@MattDMo的答案的基础上,我通过使用两个捕获组来完成此工作:一个将驱动器号(W :)替换为项目路径(/ home / me),另一个将正斜杠替换为反斜杠。我注意到构建窗口没有正确显示分隔符,但是控制台显示了。

\"${file/(W:)|(\\\\)/(?1\\/home\\/me)(?2\\/)/g}\"