在vim中,JSON的默认缩进为:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
但我所期望的是:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
我做了谷歌和尝试一些vim-json插件,但没有一个解决这个问题。
9条答案
按热度按时间jbose2ul1#
更简单的方法是仅将外部命令作为选择的过滤器。
1.进行选择
1.类型
:!python -m json.tool
lndjwyie2#
romainl推荐的方法是首选方法,但有时候您需要在一些缓冲区中对JSON文本进行精确缩进,而这些缓冲区没有
json
文件类型。只要运行
:JsonTool
,它就会很好地打印当前行。它也可以使用一个范围:如果你没有python或者更喜欢纯vim的解决方案,你可能会对Tim Pope的jdaddy插件感兴趣。Jdaddy提供JSON文本对象:
aj
和ij
,以及打印JSON格式,例如gqaj
。d5vmydt93#
你可以发送到一个外部工具,例如,如果你有python,你可以发送内容到python的json工具,使用:
8ulbf1ek4#
如果有
jq
(source)可用,则可以在命令模式下使用:bakd9h0s5#
python -m json.tool
重新排序JSON对象属性的位置,如果你已经安装了节点,你可以只使用这个函数:Map到.vimrc中的
f-j
您还可以为制表符传递多个空格,如果不指定任何空格,则默认值为2。
我的完整.vimrc在这里https://github.com/botverse/.dotfiles/blob/master/.vimrc
lmvvr0a86#
gg=G
是您在使用Vim时所需要的。hfyxw5xn7#
下面是Ruby中的一个示例:
(https://gist.github.com/zinovyev/c4b6ec3c24670278adfebfb9ecced84b)(英文)
8nuwlpux8#
将此语句添加到
/etc/vim/vimrc
:除了定义此类文件的制表符行为外,它还将强制使用2个空格制表符表示json。
8yparm6h9#
您可以使用python来格式化json:
除此之外,还有其他几种工具可以使用,如
jsbeautify
、prettydiff
、prettier
、jq
和fixjson
。有关详细信息,请参阅https://medium.com/@codevalues/how-to-explore-a-json-with-thousands-of-lines-using-vim-7f9d1ec550dc。