Запись файла с помощью vim не вызывает события изменения файла в OS X
Я использую watchdog для мониторинга .меньше событий изменения файлов на OS X. Если я изменю содержимое a .меньше файла с TextMate или Sublime Text захватывается событие модификации. Однако, если я редактирую содержимое с помощью vim, событие модификации файла не запускается (но события создания файла для файлов, созданных с помощью vim, захватываются). Я видел то же самое поведение с FSEvents и kqueue (о которых я практически ничего не знаю).
Интересно, кто-нибудь может это объяснить? поведение?
2 ответа:
Vim обычно несоздает временный файл, а затем переименовывает его. Это делается для того, чтобы при записи файлов сохранялись такие аспекты файловой системы, как ссылки (как мягкие, так и жесткие). Это кратко обсуждается в разделе Writing документации Vim, с дополнительной информацией в разделе
События изменения файла могут быть ограничены изменением записей каталога .'backupcopy'
документация по вариантам.
На Readme Watchdog есть раздел, специально нацеленный на проблему, которую вы описываете: об использовании watchdog с редакторами, такими как Vim. Предлагается использовать
set noswapfile
в вашем~/.vimrc
.