有人知道一个好的Emacs模式来编辑JSON吗?我正在开发的一个应用程序使用基于JSON的通信协议,并且数据很好地缩进和语法突出显示将帮助我解决它的过程.
Josh的json模式 +1 - 对我来说效果很好.我补充道
(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 -m json.tool" (current-buffer) t)))
和
(define-key json-mode-map (kbd "C-c C-f") 'beautify-json)
到json-mode.el使shell命令调用更容易.
更新: 对于那些需要/希望使用unicode执行此操作的人,请在此处查看我的问题.结果不是使用:
python -m json.tool
你会想要使用
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")'
这既可以美化JSON,也可以保留原始的unicode内容.
js-mode支持json文件的语法高亮和缩进.
这是Emacs 23.2,当espresso模式被合并到Emacs并重命名为js-mode时.
看看:http: //www.nongnu.org/espresso/
你有没有尝试过Steve Yegge 用于Emacs的js2模式?
如果你想要轻量级的东西尝试这个主要模式我一起攻击:https://github.com/joshwnj/json-mode
它实际上只是在javascript-mode之上突出显示的一些额外语法,但出于我的目的,我发现它工作得很好.
另一个常见的用例是自动格式化JSON文件(例如,如果它是空格压缩的,并且您希望更具可读性).为此,我只是通过命令行脚本管道缓冲区:Cu M- |
我为js2-mode准备了一个解决方法,因此它可以无错误地解析json文件.您可以在我的评论中找到它:http://code.google.com/p/js2-mode/issues/detail?id = 50#c7
(我想发布它作为评论做JF塞巴斯蒂安解决方案,但似乎我不允许这样做(没有'添加评论'链接))