### 为什么需要使用vim格式化json
对于json文本,如果没有经过格式化,可读性还是极差的,这时需要格式化或者说是优化 JSON 内容
```
{"a":"b", "c":"d"}
```
格式化为
```
{
"a": "b",
"c": "d"
}
```
### 修改 vimrc
使用 python json.tool 模块可以直接格式化json
```
" .vimrc
" 创建JSON Format 函数
function! JsonFormat()
" 将输出保存到寄存器 a 中
let @a = system("python -m json.tool " . bufname("%"))
" 如果执行失败,则只打印错误信息
if v:shell_error
echom @a
else
" 执行成功,则写入缓冲区
%delete
normal! "ap
1delete
write
endif
endfunction
```
这时我们可以再命令模式下调用该函数了
```shell
:call JsonFormat()
```
如果想更进一步,直接执行一个命令,甚至在文件保存的时候直接格式化Json
```
" .vimrc
" 创建 Jf 命令
command! Jf call JsonFormat()
autocmd BufWritePost *.json call JsonFormat()
```
这样在保存json文件的时候会直接格式化,如果格式化失败会显示出错误
vim - 格式化JSON