我需要帮助设置远程构建系统。
我在下面的构建系统在远程服务器上调用python,但问题是文件路径。
我将远程服务器映射到我的W:驱动器,所以当我调用构建系统时,它会执行。
python W:\path\to\script.py
它需要执行
python /home/me/path/to/script.py instead.
我想要做的是将“/”替换为“/”,将“W:”替换为“/ 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”部分,但我仍然需要访问其他文件夹,即“path / to /”。
我相信答案将涉及使用“sed”,但我无法让它工作......
您可以在构建系统变量中使用基于PCRE regex的substitutions和format strings。所以,而不是
\"${file}\"
在plink
命令中,使用以下命令:
\"${file/w:/\/home\/me/i}\"
Sublime自动将路径分隔符从\
更改为/
,因此我们不必担心这一点。我们需要做的就是找到w:
并用/home/me
替换它(/
字符被转义,因为/
也被用来分隔正则表达式的不同部分)。最后的i
是不区分大小写的标志,因此它可以与w:
和W:
一起使用。
我目前无法访问Windows框来测试它,但它应该可以正常工作。
在@ MattDMo的答案的基础上,我通过使用两个捕获组来实现这一点:一个用项目路径(/ home / me)替换驱动器号(W :),另一个用正斜杠替换反斜杠。我注意到构建窗口没有正确显示分隔符,但控制台是。
\"${file/(W:)|(\\\\)/(?1\\/home\\/me)(?2\\/)/g}\"