如何在`/ tmp`中创建临时文件`。#filename`,而不是工作目录

时间:2014-04-26 22:04:06

标签: emacs elisp

在Emacs中修改文件时,会在工作目录中创建一个如下所示的临时文件:.#filename。保存缓冲区时将删除该文件。

我在我的Git远程存储库中找到了一些这类临时文件,我认为最好是在源代码中删除萌芽,而不是配置Git来忽略每个项目。

我们如何配置Emacs在/tmp目录而不是工作目录中创建这些文件?

3 个答案:

答案 0 :(得分:4)

有争议的文件称为文件 - 从Emacs版本24.3开始,可以使用以下设置进行控制:

(setq create-lockfiles nil)

https://stackoverflow.com/a/12974060/2112489

答案 1 :(得分:0)

这些文件是自动保存文件。变量auto-save-file-name-transforms控制对缓冲区的文件名进行哪些修改以生成自动保存文件名。通常,file.el中的默认值足以将所有自动保存文件放在/tmp目录中。它的默认值是:

(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" "/tmp/\\2" t))

通过阅读变量/tmp来获得temporary-file-directory。检查该值,使其指向/tmp。然后,为auto-save-file-name-transforms(因此自动保存文件名)构造的值将是正确的。

答案 2 :(得分:0)

作为更通用的解决方案,您还可以创建一个全局排除文件,该文件适用于本地的所有存储库。默认情况下,这将位于~/.config/git/ignore(通常为core.excludesFile)。可以使用$ mkdir -p ~/.config/git $ echo '.#*' >> ~/.config/git/ignore 选项覆盖路径。有关详细信息,请参阅the gitignore manpage

{{1}}