【问题标题】:keybinding build_with with cmd in sublime在 sublime 中使用 cmd 键绑定 build_with
【发布时间】:2018-08-26 09:01:09
【问题描述】:

我想调用存储在 Sublime 外部插件中的特定构建命令。 .sublime.build 看起来像这样。

{
  "selector": "text.html.markdown.knitr",
  "working_dir": "${project_path:${folder}}",
  "env": { "LANG": "en_US.UTF-8" },
  "cmd": [ "Rscript -e \"library(knitr); knit('$file', output='$file_path/$file$
  "shell": true,

  "variants":
  [
    {
      "name": "Run",
      "working_dir": "$file_path",
      "shell_cmd": "Rscript -e \"rmarkdown::render(input = '$file')\""
    }
  ]
}

它使用 cmd 来简单地调用外部命令。我想创建一个自动选择 .sublime.build 的“运行”变体的键绑定。我尝试使用以下代码:

{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"build_system": "/Packages/knitr/knitr-Markdown.sublime-build", "variant": "Run" }},

不幸的是,shell返回

shell_cmd or cmd is required
[cmd: None]
[dir: /Users/serg/Desktop]
[path: /Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/serg/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/usr/local/MacGPG2/bin:/opt/X11/bin]
[Finished]

感谢任何帮助

【问题讨论】:

    标签: sublimetext3


    【解决方案1】:

    首先,您当前的构建文件无效,JSON 本身无效。我不确定这是否是复制和粘贴错误。如果没有,请使用JSON Validator 来修复语法。

    接下来,您需要以正确的语法提供命令。 cmd 期望命令作为一个数组。由于您的cmd 不完整,我将提供一个不同的示例。

    语法错误

    "cmd": ["compiler --arg source.c"]
    

    正确的语法

    "cmd": ["compiler, "--arg", "source.c"]
    

    作为参考,这里是 R-IDE 包中的 one of the build files

    {
        "selector": "text.html.markdown.rmarkdown",
        "working_dir": "$file_path",
        "cmd": [
            "Rscript", "-e",
            "rmarkdown::render('$file_name', encoding = 'UTF-8')"
        ],
        "osx":{
            "path": "/Library/TeX/texbin:/usr/local/bin:$PATH"
        }
    }
    

    【讨论】:

    • 非常感谢您的完整回答。这帮助很大!
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2015-01-04
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多