在Vim中保存时缩进JSON

Ros*_*ane 2 vim json indentation auto-indent

我正在使用elzr/vim-jsonJSON,它非常好用.gg=G缩进JSON,如果它包含无效的JSON,则不会破坏我的缓冲区.

有没有办法可以gg=G保存,但只能用于JSON文件?

Mat*_*ski 6

我猜你正在寻找autocmd:

:autocmd BufWritePre *.json :normal gg=G
Run Code Online (Sandbox Code Playgroud)

您可以将此行添加到vimrc,gg=G并将应用于与*.json保存模式匹配的每个文件.

或者,您可以使用python -m json.tool缩进JSON文件:

:autocmd BufWritePre *.json execute '%!python -m json.tool' | w
Run Code Online (Sandbox Code Playgroud)

此命令将使用外部命令(python -m json.tool)将代码lint 并将其保存到当前缓冲区(w).