0

我有一个项目,其构建和源目录不同。我想创建一个构建系统build,当我在目录中编辑时,它将在目录中构建source

假设我有这个目录结构:

  • /home/dbw/src源文件。
  • /home/dbw/bld构建文件。

(令人震惊和独特的命名系统,我知道 - 让我们掌声直到结束,好吗?)

构建嵌套了很多层,目录结构是对称的。从 中的目录source,我希望 Sublime 在相关build目录中开始构建。例如,如果我正在编辑 /home/dbw/src/foo/Makefile,我希望 make 在 /home/dbw/bld/foo 中执行。我试过这个:

{
  "cmd": ["make"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "/home/dbw/bld/${file_path/$project_path//}",
  "selector": "source.makefile",

  "variants":
  [
    {
      "name": "Clean",
      "cmd": ["make", "clean"]
    },
    {
      "name": "Test",
      "cmd": ["make", "test"]
    }
  ]
}

我的 .sublime-project 在 /home/dbw/src

我也尝试使用"working_dir": "/home/dbw/bld/${file_path/\/home\/dbw\/src//}".

在我看来,问题在于我没有正确转义替换表达式中的斜杠。有什么建议么?

4

1 回答 1

0

我这样做了,它有效。

"working_dir": "/home/dbw/bld${file_path/.home.dbw.src//}"

不过,这对我来说似乎还是有点不雅。

于 2012-12-17T08:19:56.140 回答