使用vim编写文件不会在OS X上触发文件更改事件

时间:2011-09-29 01:36:46

标签: python macos watchdog fsevents kqueue

我正在使用watchdog监视OS X上的.less文件更改事件。如果我使用TextMate或Sublime Text更改.less文件的内容,则会捕获修改事件。但是,如果我使用vim编辑内容,则不会触发文件修改事件(但会捕获使用vim创建的文件的文件创建事件)。我已经看到了与FSEvents和kqueue相同的行为(两者我几乎都不知道)。

我想知道有人可以解释这种行为吗?

2 个答案:

答案 0 :(得分:4)

Watchdog's readme上有一个专门针对您描述的问题的部分:关于将监视程序与Vim等编辑器一起使用。建议您在set noswapfile中使用~/.vimrc

答案 1 :(得分:3)

Vim通常会创建一个临时文件,然后重命名它。这样就可以在编写文件时保留文件系统方面,例如链接(软链接和硬链接)。这在Vim文档的Writing部分中进行了简要讨论,并在'backupcopy'选项文档中提供了更多信息。

您的文件更改事件可能仅限于更改目录条目