我希望将t/...
下的任何路径重写为n/...
,而不是一般用于查找文件(或者由下一个错误启动)。我希望我无法打开t/...
版本。
动机:我一直在将代码库从NFS(我编辑的地方)发送到/ tmp,所以我的构建速度更快(bjam,这很慢)。我想强制emacs打开NFS版本而不是/ tmp版本ALWAYS。我想有一些可以做到这一点的find-file钩子。有什么建议? Tramp可能不会这样做。
我很乐意改为重写编译缓冲区路径。
答案 0 :(得分:2)
对于编译,您可以使用变量compilation-finish-functions
,如下所示:
(add-hook 'compilation-finish-functions 'my-change-tmp-to-nfs)
(defun my-change-tmp-to-nfs (buffer &optional stat)
"change tmp to nfs"
(interactive "b")
(save-excursion
(set-buffer buffer)
(goto-char (point-min))
(let ((buffer-read-only nil))
(while (re-search-forward "/tmp/" nil t)
(replace-match "/nfs/")))))
现在,您可能需要更新"/tmp/"
和替换的正则表达式。阅读Regexp Search。你也可以看中并实际检查你用替换创建的路径是否真的存在......