【问题标题】:Setting up remote Sublime Text build system设置远程 Sublime Text 构建系统
【发布时间】:2023-03-22 22:11:01
【问题描述】:

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

我下面的构建系统在远程服务器上调用 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”的使用,但我无法让它工作......

【问题讨论】:

    标签: python sublimetext3 build-system


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      \"${file}\"
      

      在您的 plink 命令中,使用以下内容:

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

      Sublime 会自动将路径分隔符从 \ 更改为 /,所以我们不必担心。我们需要做的就是找到w: 并用/home/me 替换它(/ 字符被转义为/ 也用于分隔正则表达式的不同部分)。末尾的i 是不区分大小写的标志,因此它适用于w:W:

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

      【讨论】:

      • 是的!但是我不(完全)同意路径分隔符会自动更改。使用你的答案崇高正在调用“pathtoscript.py”换句话说,路径分隔符和“W:”正在被删除。我做了一些额外的转义,得到了 \"${file/w:/\\\\home\\\\me/i}\" ,它调用 homemepathtoscript.py 但仍然没有路径分隔符。
      猜你喜欢
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 2014-06-29
      • 2013-12-17
      • 1970-01-01
      相关资源
      最近更新 更多