Запись файла с помощью vim не вызывает события изменения файла в OS X


Я использую watchdog для мониторинга .меньше событий изменения файлов на OS X. Если я изменю содержимое a .меньше файла с TextMate или Sublime Text захватывается событие модификации. Однако, если я редактирую содержимое с помощью vim, событие модификации файла не запускается (но события создания файла для файлов, созданных с помощью vim, захватываются). Я видел то же самое поведение с FSEvents и kqueue (о которых я практически ничего не знаю).

Интересно, кто-нибудь может это объяснить? поведение?

2 11

2 ответа:

Vim обычно несоздает временный файл, а затем переименовывает его. Это делается для того, чтобы при записи файлов сохранялись такие аспекты файловой системы, как ссылки (как мягкие, так и жесткие). Это кратко обсуждается в разделе Writing документации Vim, с дополнительной информацией в разделе 'backupcopy' документация по вариантам.

События изменения файла могут быть ограничены изменением записей каталога .

На Readme Watchdog есть раздел, специально нацеленный на проблему, которую вы описываете: об использовании watchdog с редакторами, такими как Vim. Предлагается использовать set noswapfile в вашем ~/.vimrc.