如何在Vim中仅对选中的JSON代码片段进行格式化?
在Vim中格式化选中的JSON片段
当然可以!要在混合内容的文件里只格式化选中的JSON代码片段,完全不用动整个文件——我们可以结合Vim的可视化模式和JSON格式化工具来实现,具体方法如下:
方法一:用Python内置的json.tool(无需额外安装)
- 进入可视化模式选中目标JSON内容:
- 按
v进入字符可视化模式,精准选中那行紧凑的{"bla": [1, 2, 3], "yes": false};或者按V进入行可视化模式,选中整行。
- 按
- 执行过滤命令:
在选中状态下直接输入:
(如果你的系统默认Python是2,可能需要换成!python -m json.tool!python3 -m json.tool)
执行后,选中的紧凑JSON会被自动替换成带换行和缩进的美观格式:
{ "bla": [ 1, 2, 3 ], "yes": false }
方法二:用jq工具(更轻量高效)
如果你的系统安装了jq(很多Linux/macOS默认自带,没有的话可以用包管理器安装),步骤更简单:
- 同样选中目标JSON内容。
- 执行命令:
这个工具不仅格式化速度快,还能处理一些边缘场景的JSON,输出格式也很规范。!jq .
注意事项
- 确保你选中的是合法的JSON片段,如果有语法错误,工具会在Vim底部的命令栏提示报错。
- 这种方法只会替换你选中的内容,完全不会影响文件里的Python代码、注释、XML等其他内容,完美适配混合格式的文件。
内容的提问来源于stack exchange,提问作者ezdazuzena
相关产品推荐
相关产品推荐

