什么是#file#和file~我怎样才能摆脱它们?

And*_*ham 22 unix emacs

我原本有三个文件:makefile,readme.txt,和hashtable.c在我的目录中,其中我写我的代码在Emacs.我注意到,一些新的文件:#hashtable.c#,#readme.txt#,hashtable.c~,和makefile~ 已经建立.我想知道这些文件是什么.这些是否重要,如果没有,我如何告诉emacs停止制作它们?我也很好奇为什么readme.txt没有得到波浪文件并且makefile没有得到一个锋利的文件.

Lev*_*von 23

带有该~文件的文件是在保存文件时自动创建的备份文件.所述#README.TXT #是当前正被编辑的文件/在使用中(即,自动保存版本).~当您正常退出emacs时,它通常会消失(与文件不同)(如果它崩溃或被杀死,#文件可能会保留).

您可能会发现此页面关于emacs备份文件,这个问题:如何控制Emacs如何制作备份文件?

您可以使用以下命令阻止创建备份文件:

(setq make-backup-files nil)
Run Code Online (Sandbox Code Playgroud)

  • 除非你已经证实过程不能通过其他方式杀死,否则永远不要使用`kill -9`.通常,尝试只用`kill`,然后可能在几秒钟之后`kill -2`.不过,Emacs有一个退出键的按键; `Cx Cc`. (3认同)
  • 安德鲁:他们不是"临时文件"(无论如何都会存在于操作系统的tmp目录中).自动保存文件的存在会告诉您在强制终止Emacs时,这些文件有未保存的更改.不要禁用备份(如果您愿意,可以将Emacs配置为将其放在其他位置,但*出于明显的原因,禁用*备份不是一个好主意). (2认同)
  • 对于像我这样的其他总n00bs,这可以用〜/ .emacs,这可能已经存在,也可能不存在. (2认同)

jpk*_*tta 5

我建议安装no-littering. 它会自动将备份文件 ( file~) 放入~/.emacs.d/var/backup/. 它对自动保存 ( #file#)没有任何作用,但有一条关于将这些文件放在 README 中的指定目录中的说明:

(setq auto-save-file-name-transforms
      `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
Run Code Online (Sandbox Code Playgroud)

这些东西实际上都不会阻止 Emacs 创建这些文件,但我假设大多数人实际上想要这些文件(以防万一),但不希望它们散布在整个文件系统中。