【发布时间】:2015-07-15 20:27:20
【问题描述】:
对于我在本地服务器的帮助下开发的网站(在http://127.0.0.1:4000 运行),我尝试为我的 Sublime Text 项目设置编写构建系统。
我可以访问这些变量(由 Sublime Text 提供):
-
$file:存储磁盘上文件的绝对路径:C:\Users\User\dev\repos\base\dir\index.html -
$project_path:存放项目文件的位置(通常是项目的根目录):C:\Users\User\dev\repos\base
现在我想要的是$file 的内容,而不是$project_path 我想要的是http://127.0.0.1:4000/~base。对于该任务,我使用 Bash cmd.exe 尝试了以下操作:
CALL SET result=%file:%project_path%=http://127.0.0.1:4000\~base\% && echo %result%
这给出了想要的结果,但是我似乎无法将它应用到 Sublime Text 中的构建系统。
目前,我尝试生成正确的地址并通过 cmd.exe 输出:
{
"build_systems":
[
{
"name": "Preview in browser",
"selector": "text.html",
"windows":
{
"shell": true,
"cmd": [
"start", "cmd", "/k",
"CALL SET result=$file:$project_path=http://127.0.0.1:4000\\~base\\ && echo $result"
]
}
}
]
}
结果:
> echo %result%
C:\Users\Philipp\dev\repos\base\dir\index.html:C:\Users\Philipp\dev\repos
\base=http://127.0.0.1:4000\~base\
因此,在构建系统中进行替换时,替换不起作用,但在 cmd.exe 中起作用。我很困惑。
【问题讨论】:
-
我认为 sublime 不能以这种方式访问环境变量。如果您愿意,可以尝试创建一个使用环境变量的脚本,然后在 sublime 构建中调用该脚本文件。
-
@sergioFC 你在谈论文件和项目路径吗?这些由 Sublime 维护。它们不是环境变量。
-
对不起,我知道它们是环境变量,因为您在 bash 的 echo 指令中使用了该变量。您是通过 cygwin 还是 mingw 在 Windows 中使用 bash?如果是这样,请注意当您在 sublime 构建中使用命令时,它可能由 Windows 控制台而不是 bash 执行。
-
这实际上是在睡觉时想到的。我正在使用 Git Bash。因此,对于 Windows,我正在寻找不同的解决方案。我去看看。谢谢。
-
您应该在变量 (%) 中使用替换。
标签: bash localhost sublimetext3