【发布时间】:2014-11-28 08:03:31
【问题描述】:
我有一堆相当冗长的 xml 文件,它们以某种方式命名,例如“verbosefile_*.xml”。我有一对 python 脚本可以将这些 xml 文件转换为紧凑的 json 格式,反之亦然。目前我的工作流程是我首先使用我的脚本将详细的 xml 文件转换为紧凑的 json 文件,对该文件进行更改或编辑,然后将紧凑的 json 版本转换回详细的 xml 格式。每当我在 emacs 中访问/打开文件时,我希望这个过程透明地发生。基本上,我的新工作流程应该是在直接从编辑器打开详细的 xml 文件时,我应该看到紧凑的 json 表示,并且在编写文件时,应该在后台将 json 转换为详细的 xml 格式并写入。关于如何做到这一点的一些提示会很棒。我是 elisp 和 emacs 钩子/函数的新手,即使我已经使用编辑器一段时间了。
编辑:我可以更改 python 脚本以使事情变得更容易。例如,如果处理 std 输入的脚本使问题更容易解决,我可以这样做。
【问题讨论】:
-
这里是有关设置哨兵的文档的链接:gnu.org/software/emacs/manual/html_node/elisp/Sentinels.html 这是有关为流程设置过滤器的文档的链接(以防万一您需要监控流程输出并根据所述输出采取某些行动):gnu.org/software/emacs/manual/html_node/elisp/… 这是使用
start-process讨论的文档的链接:gnu.org/software/emacs/manual/html_node/elisp/… -
一旦你把那个进程的东西弄走,剩下的就是小菜一碟了——使用主要模式钩子或查找文件钩子或类似的东西。我会先从流程的东西开始——让它工作,然后是一个简单的 Google for emacs add-hook 以及您使用的任何主要模式都应该可以满足您的需求。
-
看看
hexl-mode。这是一个十六进制编辑器,它使用外部命令将文件转储为人类可读的格式,并在保存后再次将其转换回来。