有没有一种简单的方法可以在 vim 中反转 json 的漂亮打印?

xen*_*ros 4 python vim bash json pretty-print

当我出于机器学习目的标记图像或文本时,我经常以某种格式导出结果json。然后,我可以打开它vim并使用简单的漂亮打印

:execute '%!python -m json.tool'
Run Code Online (Sandbox Code Playgroud)

我经常添加| w它自动将更改写入文件。

有没有办法扭转这个过程?为了压缩json,所以没有多余的字符?

输入示例:

{
    "name": "John",
    "email": "john@smith.co.uk"
}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{"name":"John","email":"john@smith.co.uk"}
Run Code Online (Sandbox Code Playgroud)

我会对 Vimish、Pythonish 和 Bashish 解决方案感到满意。

xen*_*ros 5

正如chepner评论中提到的,解决方案是使用:

:%!jq -c .
Run Code Online (Sandbox Code Playgroud)

我已经测试过它并且有效。

如果想要立即保存文件,他们可以添加| w写入更改。

这需要jq在系统上安装一个相当标准的实用程序。