在 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 应有的参数。