Vim 格式化带有中文的 JSON 字符串
在 Vim 中使用 Python3 的 json 模块格式化编辑中的 JSON 文件,并保持中文不被转换。
au FileType json setlocal equalprg=python3\ -c\ 'import\ json,sys,collections;json.dump(json.load(sys.stdin,object_pairs_hook=collections.OrderedDict),sys.stdout,indent=2,ensure_ascii=False);'
注意,命令中引号 ("
) 使用了反斜线转义,因为 Vim au
命令会将所有 "
开始的字符串作为 au
命令的参数,这就导致运行外部 Python3 命令时丢失了 -c
应有的参数。