Jos*_*e B 73
在一个命令中,试试这个:
execute '%!python -m json.tool' | w
Run Code Online (Sandbox Code Playgroud)
然后,您可以添加自己的键绑定,以使其更简单的击键.当然,为了实现这一点,您需要在您的计算机上安装Python.
Kyr*_*Kyr 39
如果你热衷于使用外部工具并且你正在使用json做一些工作,我建议使用jq
:
https://stedolan.github.io/jq/
然后,您可以:%!jq .
在vim内执行,它将使用jq的输出替换当前缓冲区.
Peg*_*sus 13
%!python -m json.tool
要么
%!python -c "import json, sys, collections; print json.dumps(json.load(sys.stdin, object_pairs_hook=collections.OrderedDict), ensure_ascii=False, indent=4)"
你可以将它添加到你的vimrc:
com! FormatJSON %!python -m json.tool
比你可以使用:FormatJson
格式json文件
感谢mMontu和Jose B,这就是我最终做的事情:
警告这将覆盖您的缓冲区.因此,如果您打开已经存在语法错误的json文件,您将丢失整个文件(或者可能丢失它).
将此行添加到您的 ~/.vimrc
" Ali: to indent json files on save
autocmd FileType json autocmd BufWritePre <buffer> %!python -m json.tool
Run Code Online (Sandbox Code Playgroud)
当然,你需要在你的机器上安装python.
编辑:如果你的json有错误,下一个不应该覆盖你的缓冲区.这使得它成为正确的答案,但由于我没有很好地掌握Vim脚本或shell,所以我把它作为一个实验性的东西,你可以尝试,如果你感到幸运.它也可能取决于你的shell.你被警告了.
" Ali: to indent json files on save
autocmd FileType json autocmd BufWritePre <buffer> %!python -m json.tool 2>/dev/null || echo <buffer>
Run Code Online (Sandbox Code Playgroud)
在vim.org上搜索JSON插件返回了以下内容:
它具有以下说明:
gqaj
“漂亮的打印”(包装/缩进/排序键/否则清除)光标下的JSON构造。
如果它符合您期望的格式,则可以autocmd BufWritePre
在保存时创建to格式。
归档时间: |
|
查看次数: |
22584 次 |
最近记录: |