为什么我的文件名末尾有井号,比如#test.c#?这与Emacs有关。

18

我正在Ubuntu 9.04上使用emacs 22.2.1。

每次我打开一个文件并进行编辑后,在终端中列出目录中的文件时,我会看到每个文件末尾都有一些哈希值。

例如:

#test.c#
#test.h#

为什么这样,我该如何移除它们?

非常感谢任何建议。

6个回答

23

这是一个备份(自动保存)文件。当Emacs完成对文件的编辑时,它应该会将它们删除,除非它死亡或者您在没有保存文件的情况下杀死它。最好不要删除这些文件,因为如果您这样做了,如果Emacs由于某种原因崩溃,您将无法恢复。当您再次启动Emacs时,您可以使用M-x recover-this-file从备份中恢复文件。


5
这些是自动保存文件。
查看这个链接,将文件更改为不同的目录。

3
您遇到了名为“自动保存”的功能。它会保存用户一段时间内未保存的修改过的缓冲区。
我见过有人禁用它或将自动保存的缓冲区位置更改为临时目录。您也可以在这里获取更多信息。

2

Emacs会定时备份,以便在发生崩溃时,您始终可以拥有所做的更改(不包括最后5分钟的工作)。您可以通过以下命令从工作目录中删除备份文件:rm #*


2
只要注意一下你是否有其他以 # 开头的文件就行了。虽然不太可能,但还是提醒一下... - Twisol
1
如果你真的不喜欢这些文件,你可以配置Emacs不创建它们或在其他地方创建它们。这比在你珍贵的目录中定期执行危险命令要好得多。虽然因为自动保存和打字错误而丢失工作文件会很有趣 :) - Pascal Cuoq
1
我以为自己找到了最聪明的解决方案,肯定能得到很多赞。但这些人是对的。确保你没有任何以 # 开头的文件。 - Penang
2
你可能需要使用以下命令删除这些文件: rm #* - Jonathan Arkell

1
将以下文本从英语翻译成中文:

不要删除这些自动保存文件,我建议将它们放在一个隐藏的目录中。它们是防止数据丢失的廉价保险。

在运行Ubuntu Linux的Emacs 28上,我在我的~/.emacs配置文件中有以下几行:

(setq auto-save-file-name-transforms `((".", "~/.emacs-saves" t)))

此外,我还使用它来移动备份文件(看起来像filename~的文件)。
(setq backup-directory-alist `(("." . "~/.emacs-saves")))
(setq backup-by-copying t)

请注意,您可能有不同的配置文件位置,这是完全可以的。如果您发现~/.emacs不存在,则尝试~/.emacs.el~/.emacs.d/init.el~/.config/emacs/init.el

1

这是一个恢复文件,当你有一段时间没有保存文件时(但仅当它包含未保存的文本时),Emacs会创建它。只要你保存文件,恢复文件就会被删除。如果在你保存之前Emacs崩溃了,可以使用M-x recover-file来恢复文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接