有没有一种简单的方法可以在 vim 中反转 json 的漂亮打印?
Is there an easy way to reverse pretty print of json in vim?
当我为机器学习目的标记图像或文本时,我经常以 json
格式导出结果。然后,我可以在 vim
中打开它并使用
简单地打印出来
:execute '%!python -m json.tool'
我经常添加 | w
自动将更改写入文件。
有没有办法逆转这个过程?为了压缩json,所以没有多余的字符?
示例输入:
{
"name": "John",
"email": "john@smith.co.uk"
}
期望的输出:
{"name":"John","email":"john@smith.co.uk"}
我会对 Vimish、Pythonish 和 Bashish 解决方案感到满意。
正如评论中提到的chepner
,解决方案是使用:
:%!jq -c .
我已经测试过它并且有效。
如果有人想立即保存文件,他们可以添加 | w
来写入更改。
这需要在系统上安装 jq
,这是一个非常标准的实用程序。
这也可以在纯 Vim:
中完成
%delete | 0put =json_encode(json_decode(@@))
但请注意,对象内的字段顺序将不会保留。这样就可以得到
{"email":"john@smith.co.uk","name":"John"}
当我为机器学习目的标记图像或文本时,我经常以 json
格式导出结果。然后,我可以在 vim
中打开它并使用
:execute '%!python -m json.tool'
我经常添加 | w
自动将更改写入文件。
有没有办法逆转这个过程?为了压缩json,所以没有多余的字符?
示例输入:
{
"name": "John",
"email": "john@smith.co.uk"
}
期望的输出:
{"name":"John","email":"john@smith.co.uk"}
我会对 Vimish、Pythonish 和 Bashish 解决方案感到满意。
正如评论中提到的chepner
,解决方案是使用:
:%!jq -c .
我已经测试过它并且有效。
如果有人想立即保存文件,他们可以添加 | w
来写入更改。
这需要在系统上安装 jq
,这是一个非常标准的实用程序。
这也可以在纯 Vim:
中完成%delete | 0put =json_encode(json_decode(@@))
但请注意,对象内的字段顺序将不会保留。这样就可以得到
{"email":"john@smith.co.uk","name":"John"}