Comment auto format JSON sur enregistrer dans Vim
Pour être honnête go
m'a gâté. Avec go
je me suis habitué à avoir une stricte mise en forme standard est en cours d'exécution par mon éditeur (vim) et est presque accepté et suivi par tout le monde dans l'équipe et dans le monde.
Je voulais le format des fichiers JSON sur enregistrer de la même façon.
Question: Comment format automatique/retrait/peluches des fichiers json sur enregistrer dans vim.
- Related post: Comment résoudre json indentation dans vim?
Vous devez vous connecter pour publier un commentaire.
En une seule commande, essayez ceci:
Vous pouvez ensuite ajouter votre propre clé de liaison pour en faire une simple touche. Bien sûr, pour que cela fonctionne, vous devez avoir installé Python sur votre machine.
| w
ici? Pourquoi ne pas simplement::%!python -m json.tool
?|w
enregistre uniquement le tampon, sans vous, il serait d'obtenir le format json, mais les changements ne sont pas sauvés. Cela dépend de ce que vous voulez, je suppose.:write
de sens. cheers!Si vous êtes désireux sur l'utilisation de l'outil externe et que vous faites un certain travail avec json, je vous recommande d'utiliser le
jq
:https://stedolan.github.io/jq/
Ensuite, vous pouvez exécuter
:%!jq '.'
à l'intérieur de vim qui remplacera l'actuel, tampon avec la sortie de jq.:%!jq "."
en supposant que vous avez téléchargé la version windows de jq, et l'a renommé dejq-win64.exe
àjq.exe
(similaire pour la version 32 bits). Aussi, assurez-vous qu'il est dans votre chemin..
,:%! jq .
fonctionne pour moi, ou:%! jq --indent 4 .
%!python -m json.tool
ou
%!python -c "import json, sys, collections; print json.dumps(json.load(sys.stdin, object_pairs_hook=collections.OrderedDict), ensure_ascii=False, indent=4)"
vous pouvez ajouter ceci à votre vimrc:
com! FormatJSON %!python -m json.tool
que vous pouvez utiliser
:FormatJson
format des fichiers jsonGrâce mMontu et Jose B, c'est ce que j'ai fait:
AVERTISSEMENT cela permettra de remplacer votre tampon. Donc, si vous OUVREZ un fichier json qui a déjà une erreur de syntaxe, vous perdrez tout votre fichier (ou peut le perdre).
Ajoutez cette ligne à votre
~/.vimrc
vous avez besoin de python sur votre machine, bien sûr.
EDIT: cette prochaine devrait pas remplacer votre tampon si votre json a erreur. Ce qui en fait la bonne réponse, mais depuis je n'ai pas une bonne connaissance du script Vim ou shell pour cette question, je la présente à titre expérimental chose que vous pouvez essayer si vous vous sentez chanceux. Cela peut dépendre de votre shell trop. Vous êtes prévenu.
(%!python -m json.tool 2>/dev/null || echo <buffer>)
Une recherche de JSON plugins sur vim.org retourné à ceci:
jdaddy.vim : JSON manipulation et jolie impression
Il a sur description:
Si ce n'est la mise en forme vous attendent alors vous pourriez créer un
autocmd BufWritePre
de format lors de l'enregistrement.Vim Mise En Forme Automatique
https://github.com/Chiel92/vim-autoformat
Il y a ce plugin Vim, qui supporte plusieurs format automatique et de retrait des régimes ainsi que de l'extension avec les formateurs personnalisés par type de fichier.
https://github.com/Chiel92/vim-autoformat#default-formatprograms
Remarque:
Vous aurez besoin d'avoir
nodejs
etjs-beautify
installé commevim-autoformat
utilise en tant que par défaut externe de l'outil.npm install -g js-beautify
vous pouvez effectuer une recherche pour 'vim-json-ligne-format' plug-in, Ouvrir un fichier dans
Normal mode
, déplacez votre curseur sur le json en ligne, l'utilisation<leader>pj
pour montrer formatées en json par imprimer, utilisez<leader>wj
pourrait modifier le texte au format json.Invalid json ne peut pas formater!