如何在Vim/Neovim中格式化MongoDB CLI导出的非标准JSON内容
MongoDB CLI非标准JSON Vim/Neovim格式化方案
问题背景
从MongoDB CLI复制的数据包含NumberLong等MongoDB专属扩展语法,不属于标准JSON规范,因此jq、python json.tool、vim-jdaddy等标准JSON格式化工具均会解析失败。VSCode可直接格式化是因为内置了MongoDB语法兼容支持,Vim/Neovim可通过以下两种方案实现同等效果,均支持嵌套对象等复杂场景:
方案1:Prettier适配(与VSCode效果完全一致)
VSCode的MongoDB格式化能力底层基于该方案实现,输出和预期效果完全匹配:
- 全局安装依赖:
npm install -g prettier @prettier/plugin-mongodb
- Vim/Neovim中打开文件后执行命令即可完成全量格式化:
:%!prettier --parser mongodb
Neovim用户可将该规则配置到conform.nvim、null-ls等格式化插件中,实现保存自动格式化。
方案2:MongoDB Shell原生处理
如果已安装mongosh(MongoDB官方Shell),无需额外安装其他工具,直接执行以下命令即可格式化:
:%!mongosh --eval "EJSON.stringify(EJSON.parse(read()), null, 2)" --norc --quiet
该方案原生支持所有MongoDB扩展语法,适配所有复杂结构场景。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

