在访问并在emacs中写入文件时对文件进行预处理/后处理

 宫廷的围脖6uw_1911 发布于 2022-12-09 12:45

我有一堆相当冗长的xml文件,它们以某种方式命名,如"verbosefile _*.xml".我有一对python脚本将这些xml文件转换为紧凑的json格式,反之亦然.目前我的工作流程是我首先使用我的脚本将详细的xml文件转换为紧凑的json文件,对该文件进行更改或编辑,然后将紧凑的json版本转换回详细的xml格式.每当我在emacs中访问/打开文件时,我都希望这个过程透明地发生.基本上,我的新工作流程应该是直接从编辑器打开详细的xml文件时,我应该看到紧凑的json表示,并且在写入文件时,json应该在后台转换为详细的xml格式并写入.关于如何做到这一点的一些提示将是伟大的.我是elisp和emacs钩子/函数的新手,即使我已经使用了编辑器一段时间了.

编辑:我可以更改python脚本,使事情更容易.例如,如果处理std输入的脚本使问题更容易解决,我可以这样做.

1 个回答
  • 有各种方法可以做你要求的.

    其中之一,意味着"规范的方式"(虽然它似乎不经常使用)是使用format-alist.在您的情况下,格式的检测基于文件名而不是文件内容,因此您要全局添加format-alistREGEXP部分为零的条目.然后你设置一个特殊的模式auto-mode-alist,该模式将通过缓冲区的内容通过你的第一个脚本(带call-process-region)开始,然后设置buffer-file-format为表明你正在使用你添加的格式format-alist.

    另一种选择是使用a file-name-handler-alist,就像我们对.gz文件一样.

    另一种选择是使用一种特殊模式(如上),但设立的,而不是format-alistbuffer-file-format,你会简单地(add-hook 'write-file-functions #'my-write-hook nil t)my-write-hook使用第二脚本保存文件.

    2022-12-11 02:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有