Je veux apporter un json non formaté et le formater avec vim pour une visualisation facile.
etc. Dans le premier exemple, vous pouvez l'afficher magnifiquement en utilisant l'extension du navigateur, mais dans les deuxième et troisième cas, cela semble pratique si vous pouvez le coller sur vim et le formater.
Dans l'environnement où python2.6 ou version ultérieure est installé (alors que la commande python est dans le PATH), vous pouvez formater la chaîne de caractères json dans le tampon en appuyant sur la commande suivante.
:%!python -m json.tool
Par exemple, si vous appuyez sur la commande ci-dessus lorsqu'une telle chaîne de caractères est dans le tampon
{"count":1,"list":[{"url":"http://json.org/example.html","title":"\u3042\u3044\u3046\u3048\u304a"}]}
Je me sens comme cela.
{
"count": 1,
"list": [
{
"title": "\u3042\u3044\u3046\u3048\u304a",
"url": "http://json.org/example.html"
}
]
}
Ça fait du bien. Cependant, je ne suis pas très content de la fuite des Japonais (je m'inquiète également de l'espace demi-largeur en fin de ligne). Donc, j'ai fait une commande légèrement améliorée. Je suis un débutant en vim, donc je serais heureux si vous pouviez m'offrir un tsukkomi.
command! JsonFormat :execute '%!python -m json.tool'
\ | :execute '%!python -c "import re,sys;chr=__builtins__.__dict__.get(\"unichr\", chr);sys.stdout.write(re.sub(r\"\\u[0-9a-f]{4}\", lambda x: chr(int(\"0x\" + x.group(0)[2:], 16)), sys.stdin.read()))"'
\ | :%s/ \+$//ge
\ | :set ft=javascript
\ | :1
Si vous écrivez une brève explication
Lorsque vous exécutez la commande
:JsonFormat
L'affichage sera comme suit.
{
"count": 1,
"list": [
{
"title": "AIUEO",
"url": "http://json.org/example.html"
}
]
}
Recommended Posts