Почему emacs создает временные символические ссылки для измененных файлов? - PullRequest
68 голосов
/ 21 апреля 2011

Когда я изменяю буфер, Emacs автоматически создает временную символическую ссылку в том же каталоге, что и редактируемый файл (например, foo.c):

.#foo.c -> user@host.12345:1296583136

, где '12345' - это PID Emacs '(Iне знаю, что означает последнее число).

Почему Emacs создает эти ссылки и как мне этого не делать?

Обратите внимание, что я отключил режим автосохранения (M-x auto-save-mode) и отключенные файлы резервных копий (M-x set-variable -> make-backup-files -> nil).Когда я сохраняю измененный буфер или отменяю изменения в нем, символическая ссылка исчезает.

В частности, я пытаюсь запретить Emacs создавать эти ссылки, потому что они вызывают изменение метки времени каталога, что вызываетнаша система сборки перестраивает весь модуль вместо компиляции и компоновки одного измененного файла: /

Спасибо за любой ввод!


Обновление: чтобы Emacs не мог создавать блокирующие файлынавсегда, вы можете изменить src/filelock.c и создать собственный двоичный файл:

void
lock_file (fn)
     Lisp_Object fn;
{
     return;
     // Unused code below...
}

Обновление 2: ответ Арне правильный.Теперь можно отключить блокировку файлов в последней версии Emacs (24.3.1), добавив это в ваш файл .emacs:

(setq create-lockfiles nil)

Ответы [ 2 ]

60 голосов
/ 19 октября 2012

Обновление: Emacs 24.3 был выпущен с полной поддержкой этого нового параметра!

В текущем транке emacs вы можете просто настроить переменную create-lockfiles:

C-h v create-lockfiles

Документация: Не ноль означает использование файлов блокировки, чтобы избежать редактирования коллизий.

В вашем файле инициализации вы можете установить

(setq create-lockfiles nil)

Получить через

bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk emacs-trunk
make
src/emacs

(Я узнал об этом, потому что решил стать активным и просто сам добавить такую ​​опцию… :))

34 голосов
/ 21 апреля 2011

Символическая ссылка - это система блокировки файлов emacs: символическая ссылка указывает, что экземпляр emacs редактирует этот файл. Если другой экземпляр попытается отредактировать этот же файл, emacs выдаст предупреждение. Смотри http://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html

Это не имеет ничего общего с автосохранением.

Я не могу найти, как изменить или отключить блокировку файлов из Emacs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...