2

t/...我希望重写任何路径,n/...而不是一般的查找文件(或者就像由下一个错误启动的那样)。我希望我无法打开该t/...版本。

动机:我一直在将代码库从 NFS(我编辑的地方)同步到 /tmp,所以我的构建速度更快(bjam,这很慢)。我想强制 emacs 总是打开 NFS 版本而不是 /tmp 版本。我想有某种查找文件钩子可以做到这一点。有什么建议么?流浪汉可能不会这样做。

我很乐意改写我的编译缓冲区路径。

4

1 回答 1

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/", 和替换的正则表达式。阅读正则表达式搜索。您也可以花哨并实际检查您使用替换创建的路径是否确实存在......

于 2011-06-21T20:03:26.873 回答