77 votes

Mode Emacs pour éditer JSON

Quelqu'un connait un bon mode Emacs pour éditer JSON? Une application que je suis en train de travailler sur utilise JSON en fonction du protocole de communication et des données bien en retrait et syntaxe en surbrillance serait m'aider beaucoup dans le processus d'essayer de le comprendre.

36voto

jstevenco Points 1716

+1 pour Josh json-mode -- fonctionne bien pour moi. J'ai ajouté

(defun beautify-json ()
  (interactive)
  (let ((b (if mark-active (min (point) (mark)) (point-min)))
        (e (if mark-active (max (point) (mark)) (point-max))))
    (shell-command-on-region b e
     "python -mjson.tool" (current-buffer) t)))

et

(define-key json-mode-map (kbd "C-c C-f") 'beautify-json)

json-mode.el pour faire la commande shell invocation plus facile.

Mise à JOUR: pour ceux d'entre vous avec un besoin/envie de le faire avec unicode, voir ma question ici. Le résultat est, plutôt que d'utiliser:

python -mjson.tool

vous souhaitez utiliser

python -c 'import sys,json; data=json.loads(sys.stdin.read()); print json.dumps(data,sort_keys=True,indent=4).decode(\"unicode_escape\").encode(\"utf8\",\"replace\")'

cette fois embellit le JSON ainsi qu'à la préservation de l'original de l'unicode.

29voto

Steve Points 943

js-mode prend en charge la coloration syntaxique et l'indentation pour des fichiers json.

C'est comme d'Emacs 23.2, quand espresso-mode a été incorporé dans Emacs et renommé js-mode.

Check it out: http://www.nongnu.org/espresso/

15voto

Josh Points 401

Si vous voulez quelque chose de léger, essayez ce grand-mode j'ai bidouillé: https://github.com/joshwnj/json-mode

C'est en fait pas plus de quelques extra coloration syntaxique sur le dessus de javascript mode, mais pour ma part je l'ai trouvé très bien fonctionner.

Un autre cas d'utilisation est de l'auto-mise en forme d'un fichier JSON (par exemple. si c'est blanc, compressé et vous voulez plus de lisibilité). Pour ce faire, je suis juste la tuyauterie de la mémoire tampon par l'intermédiaire d'un script de ligne de commande: C-u M-|

15voto

J.F. Sebastian Points 102961

Avez-vous essayé de Steve Yegge de la js2-mode pour Emacs?

9voto

Mariusz Nowak Points 5879

Je vous ai préparé une solution de contournement pour js2-mode de sorte qu'il traite les fichiers json sans erreurs. Vous pouvez le trouver dans mon commentaire: http://code.google.com/p/js2-mode/issues/detail?id=50#c7

(Je voulais poster un commentaire ne J. F. Sebastian solution, mais il semble que je ne suis pas autorisé à le faire (pas de 'ajouter un commentaire' link))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X