为什么emacs为修改后的文件创建临时符号链接?
当我修改一个缓冲区时,Emacs会自动在与正在编辑的文件相同的目录中创建一个临时符号链接(例如foo.c):
.#foo.c -> user@host.12345:1296583136
其中“12345”是Emacs的PID(我不知道最后一个数字的含义)。
为什么Emacs创建这些链接,我如何阻止它这样做?
请注意,我关闭了自动保存模式( Mx auto-save-mode
)并禁用了备份文件( Mx set-variable -> make-backup-files -> nil
)。 当我保存一个修改后的缓冲区,或者撤销对它的更改时,符号链接消失。
特别是,我试图阻止Emacs创建这些链接,因为它们会导致目录时间戳被修改,这会导致我们的构建系统重新构建整个模块,而不是编译和链接一个已更改的文件:/
感谢您的任何意见!
更新:为了防止Emacs永久创建联锁文件,您可以更改src/filelock.c
并构建一个自定义二进制文件:
void
lock_file (fn)
Lisp_Object fn;
{
return;
// Unused code below...
}
更新2:阿恩的答案是正确的。 现在可以通过将这添加到您的.emacs文件来禁用最新的Emacs(24.3.1)中的锁文件:
(setq create-lockfiles nil)
更新:Emacs 24.3已经全面支持这个新设置!
在emacs的当前主干中,您可以简单地自定义变量create-lockfiles:
C-h v create-lockfiles
文档:非零表示使用锁定文件来避免编辑冲突。
在你的init文件中,你可以设置
(setq create-lockfiles nil)
通过它获取
bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk emacs-trunk
make
src/emacs
(我发现这件事,因为我决定积极行动,只是自己添加一个选项...... :))
符号链接是emacs的文件互锁系统:符号链接表示emacs的一个实例正在编辑该文件。 如果另一个实例试图编辑同一个文件,emacs将发出警告。 请参阅http://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html
这与自动保存无关。
我找不到如何修改或禁用emacs中的文件锁定。
链接地址: http://www.djcxy.com/p/38553.html上一篇: Why does emacs create temporary symbolic links for modified files?