这个问题是我先前问题How to automatically decompress a custom compressed file when opened in emacs?的后续问题。在此基础上,我可以按以下方式调整我的init.el
(defadvice jka-compr-info-compress-args (around eval-args activate)
"Evaluate program arguments"
(setq ad-return-value (mapcar 'eval (aref info 3))))
(defadvice jka-compr-info-uncompress-args (around eval-args activate)
"Evaluate program arguments"
(setq ad-return-value (mapcar 'eval (aref info 6))))
(add-to-list 'jka-compr-compression-info-list
["\\.tk\\'"
"TKing" "tksave" (filename)
"unTKing" "tkopen" (filename)
nil t ""])"tk“是一个自定义压缩工具,在我的自定义内部使用。"tksave“和"tkopen”分别是压缩和解压缩的相应命令。当我打开一个文件时,"tkopen“通过自动解压缩可以正常工作,但是"tksave”将原始文件保存回来,而不是保存访问该文件的已编辑缓冲区。如何将编辑后的缓冲区压缩到文件中?
发布于 2014-02-22 02:31:55
删除defadvice黑客,而不是使用作为"unix“的tksave和tkopen程序(即从stdin获取它们的输入并将它们的输出发送到stdout)。
对于tkopen,您可以通过运行tkopen /dev/stdin而不受影响。也许对tksave来说,你也可以不受tksave /dev/stdin的影响。但这两个命令都取决于这两个命令的具体工作方式(例如,如果执行tkopen /foo/bar,未压缩的结果在哪里发送?tksave /foo/bar也是如此。
https://stackoverflow.com/questions/21946031
复制相似问题