Étant donné un fichier avec un grand objet JSON sur une seule ligne comme
{"versions":[{"count":2,"version":""},{"count":1,"version":"1.1.1"},{"count":14,"version":"2.9"},{...
Comment puis-je formater ceci pour qu'il soit lisible par l'homme dans Vim?
formatting
filetype-json
ljs.dev
la source
la source
Réponses:
Ou vous pouvez installer
jq
ce qui est plus rapide (écrit en C) à partir de votre gestionnaire de paquets (par exemplesudo apt install jq
dans Ubuntu / Debian,sudo dnf install jq
sur Fedora / RHEL / CentOS) ou à partir de la source , puis dans vim, tapez:la source
:%!jq
fonctionne aussi bien pour moi..
pour moi. Je me demande pourquoi.Ce one-liner fonctionne bien pour formater JSON dans Vim dans une forme lisible par l'homme:
:%!python -m json.tool
la source
:%!jq .
réponse ces jours-ci, car je fais moins avec Python et j'ai tendance à avoirjq
installé sur mes systèmes pour tout travail JSON en CLI. Je reçois également des notifications pour cette question SO assez souvent, donc cela m'aide à ne pas oublier: PI préfère vim avec une personnalisation minimale, pas de plugins, etc., ce qui est une autre raison pour laquelle lajq
solution est maintenant ma préférée.Pour formater de manière déterministe, nous devons trier le hachage. Aucune des autres réponses n'a fait cela pour moi, alors j'ai créé la mienne:
Usage:
la source
jq
mentionné dans les réponses SebMa a une--sort-keys
option qui ferait le travail. Mais c'est cool d'écrire aussi votre propre implémentation :)Si PHP est disponible, ajoutez l'outil en
jf
tant que formateur JSON par compositeur:Ensuite, formatez le fichier actuel:
Ou ajoutez un clavier dans vimrc:
la source
J'utilise cette
:Jsonf
commande. Il peut formater unicode.la source