在Emacs中修改文件时,会在工作目录中创建一个如下所示的临时文件:.#filename
。保存缓冲区时将删除该文件。
我在我的Git远程存储库中找到了一些这类临时文件,我认为最好是在源代码中删除萌芽,而不是配置Git来忽略每个项目。
我们如何配置Emacs在/tmp
目录而不是工作目录中创建这些文件?
答案 0 :(得分:4)
有争议的文件称为锁文件 - 从Emacs版本24.3开始,可以使用以下设置进行控制:
(setq create-lockfiles nil)
答案 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}}