Sublime Text - JSON格式化快捷键

195

我正在使用SublimeText

如何使用快捷键重新缩进Json代码?

我已经安装了packageControl并且它可以正常工作。

我已经尝试过JsonReindent插件,但它默认没有快捷键,而且我不知道它的命令名称。

我已经有这个命令(来自我之前在另一台电脑上使用的sublimetext2,它可以正常工作):

// JSON reindent
{ "keys": ["ctrl+shift+j", "ctrl+shift+j"], "command": "json_reindent" },

但是在这里它不起作用。
9个回答

255

我也遇到了这个问题。我尝试通过以下步骤安装jsFormat来解决:

  1. 打开Package Control面板 command+shift+p (Mac),安装包。

  2. 安装jsFormat

  3. 编辑jsformat的快捷键:sublime text preferences, package settings, jsFormat

  4. 选择Key-Binding user,然后进行编辑。

[
  {
    "keys": [
      "command+l"
    ],
    "command": "reindent"
  },
  {
    "keys": [
      "ctrl+shift+s"
    ],
    "command": "auto_save"
  }, 
  {
    "keys": [
      "ctrl+alt+f"
    ],
    "command": "js_format"
  }
]
  • 所以下次当你尝试格式化 JSON 代码时,只需要在 Mac 上使用 ctrl+option+f。如果不是在 Mac 上,就使用 ctrl+alt+f

  • 就这些。


    8
    我想再点赞几次,谢谢 y0。 - jorfus
    7
    在Linux上,快捷键是CTRL + Shift + P。如果您还没有安装package control,则需要先选择安装它,然后再运行install package并搜索jsformat - fIwJlxSzApHEZIl
    1
    使用以下代码来设置 __控制命令 j__:"{ "keys": [ "ctrl+command+j" ], "command": "pretty_json" }" - B Seven
    1
    目前不可用 - http8086
    1
    直到我添加了“键绑定用户”配置,它才开始对我有效。之后就像魅力一样运行。 - vikash vik
    显示剩余4条评论

    161

    通过CMD + SHIFT + P > 安装包 > 搜索 Pretty JSON 并安装此软件包。

    输入图像描述

    然后使用 CMD + CTRL + J(OSX)或 CTRL + ALT + J(Windows / Linux)将丑陋的JSON转换为漂亮的JSON!

    源代码在GitHub上。 来源


    2
    这个对我来说是答案! - user1064180
    6
    请记住,如下所述,您仍需要为快捷方式设置键绑定。CMD + CTRL + J不能直接使用,至少对于Sublime Text 3和4而言。请参考用户Shubham Jain的建议进行设置。 - TheFreddyKilo
    对我来说非常有效!谢谢 - zushe

    122

    对于我在MAC OS上的sublime 4以下工作:

    按照以下步骤安装"Pretty JSON" sublime 4:

    • 使用组合键Cmd + Shift + p并输入Install Package
    • 从搜索结果中选择Package Control: Install Package
    • 输入Pretty JSON并从搜索结果中选择它

    或者按照下面链接中的"手动安装"步骤进行安装

    https://packagecontrol.io/packages/Pretty%20JSON


    现在来说一下快捷方式:
    点击Sublime -> Preferences -> Key Bindings
    在现有的json中添加以下json部分并保存文件
    { "keys": [ "ctrl+shift+j" ], "command": "pretty_json" }
    

    你也可以使用cmd键代替ctrl键,根据你的喜好进行设置。
    完整的json如下所示:
    [{
        "keys": [
          "command+l"
        ],
        "command": "reindent"
      },
      {
        "keys": [
          "ctrl+shift+s"
        ],
        "command": "auto_save"
      },
      {
        "keys": [
          "ctrl+shift+k"
        ],
        "command": "js_format"
      },
      {
        "keys": [
          "ctrl+shift+j"
        ],
        "command": "pretty_json"
      }
    ]
    

    现在你可以随时使用下面的快捷键在Sublime中美化JSON。
    ctrl+shift+j
    

    你也可以使用命令键代替ctrl键。

    enter image description here


    34

    若使用 Mac OS,请按照以下步骤操作:

    安装 Pretty JSON

    1. 使用快捷键组合 Cmd + Shift + p 并输入 Install Package
    2. 从搜索结果中选择 Package Control: Install Package
    3. 输入 Pretty JSON 并从搜索结果中选择它

    添加按键绑定

    1. 在菜单栏中选择 Sublime Text > Preferences > Key Bindings

    2. 在按键绑定中添加以下快捷键:

      { "keys": [ "command+shift+j" ], "command": "pretty_json" }

    使用 Pretty JSON

    1. 选中 JSON 文本并使用快捷键组合 Cmd + Shift + j

    12
    如果您查看源代码sublime_plugin.TextCommand子类的名称是SublimeJsonReindentCommand。根据命令名称惯例,结果命令的名称为sublime_json_reindent。只需将您的按键绑定更改为:
    { "keys": ["ctrl+shift+j", "ctrl+shift+j"], "command": "sublime_json_reindent" },
    

    你应该准备就绪了。


    该命令没有任何作用。在控制台中没有任何显示。 如果我直接在控制台中输入该命令:>>> sublime_json_reindent Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'sublime_json_reindent' is not defined - user2342558
    在控制台中,运行view.run_command("sublime_json_reindent"),并让我知道发生了什么。确保您打开了一个JSON文件并选择了一些文本。 - MattDMo
    @user2342558 你确定你已经安装了JSON Reindent吗? - MattDMo
    我确定。它出现在软件包控制中心。我也已经通过软件包控制重新安装了它。 - user2342558
    可能与以下内容相关 - https://forum.sublimetext.com/t/cant-open-user-keybinding-settings-for-packages/13152 - Saikat

    11
    Sublime Text与JSON格式化器
    你可以使用“命令面板”来格式化文本
    1. 安装SublimePrettyJson 2.1 使用命令面板进行格式化
    //Call Command Palette
    Ctrl+Shift+P
    
    //Format code instead of  CMD + CTRL + J (OSX)
    pretty format
    
    2.2 使用自定义快捷方式进行格式化
    Sublime Text -> Settings... -> Key Bindings
    
    //{ "keys": [ "<custom_shortcut >" ], "command": "pretty_json" }
    { "keys": [ "ctrl+i" ], "command": "pretty_json" }
    

    enter image description here


    1
    据我所知,您可以绑定自定义快捷键。例如,请参阅被接受的答案。 - user2342558
    那不正确,你可以绑定它..我在这个帖子中提到了同样的内容。 - Shubham Jain
    1
    这个答案应该被删除,因为在我的问题中我明确要求一个快捷方式,而不是使用命令面板... - user2342558

    5

    我正在使用Linux操作系统。我找到了解决方案,首先安装package controller,然后是Pretty JSON package。

    1. 为sublime安装package controller,点击这里

    2. 通过CMD + SHIFT + P键安装Pretty JSON packages,搜索Pretty JSON并安装。详情请见这里


    1
    自从版本4以来,它可以在选择 -> 格式 -> JSON 菜单选项下使用。 enter image description here

    这是一个本地功能还是仍然需要安装包? - user2342558
    现在它已经随之而来。 - David Welborn
    3
    在Sublime 4216中,它不是原生的,选择中没有格式菜单。 - Suncatcher
    1
    在版本4126中有。 - David Welborn
    是的,现在有了。 - user2342558

    0
    打开命令面板:按下Ctrl+Shift+P(Windows)或Cmd+Shift+P(OS X)。在命令面板输入框中键入“install”,它会自动完成为“Install Package Control”。 enter image description here 然后转到Sublime Text->首选项->Package Control->在弹出的框中键入“Package Control: Install Package”,这将打开一个单独的弹出框,在其中键入要安装的程序包,例如“Pretty JSON”。
    通过CMD + CTRL + J(OS X)将不美观的JSON转换为漂亮的JSON。

    1
    你好,你的回答有什么目的?“Pretty JSON”已经在其他答案中提到了。 - user2342558
    2
    我觉得一些初始步骤缺失了,所以我添加了这个答案。我曾经苦于安装Pretty JSON,因为答案没有解释如何先安装“Package Control”。只有在安装了“Package Control”之后,才能安装“Pretty JSON”。 - Aravind Krishnakumar

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接