从 CLI 启动 Sublime Text,从 stdin 和 Pretty Print 粘贴文本 JSON

Launch Sublime Text from CLI, paste text from stdin and Pretty Print JSON

来自 OS X 10.11.3 终端(bash shell),我想在 Sublime Text 3 中打开一个 JSON 字符串并使用 Pretty JSON 将 "Pretty Print" 的 JSON 字符串打包成更易读的格式。

根据 Sublime Text 3 documentation,应该可以使用 --command 参数从 CLI 指定命令。

以下命令设法在 Sublime Text 3 中打开 JSON 字符串。它无法完美打印 JSON 字符串。

echo "{ "menu": { "id": "file", "value": "File" }}" | subl --command jq_pretty_json -

有谁知道如何从 OS X 命令行应用这个 Pretty Print 命令?当从 Sublime Text 3 UI 调用 Pretty JSON 时,它没有问题。

您可以安装 jq via homebrew,然后执行:

$ echo '{ "menu": { "id": "file", "value": "File" }}' | jq .
{
  "menu": {
    "value": "File",
    "id": "file"
  }
}

您必须小心引用:由于您使用的是双引号,"interior" 个引号中的 none 个将出现在 echo 命令的输出中。

下面的命令可以满足我的要求:

echo '{ "menu": { "id": "file", "value": "File" }}' | subl - & sleep 1; subl --command pretty_json