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

11 投票
2 回答
1680 浏览
提问于 2025-04-17 03:19

我正在使用watchdog来监控OS X系统上.les文件的变化。当我用TextMate或Sublime Text编辑.les文件时,文件修改的事件会被捕捉到。但是,如果我用vim编辑文件,文件修改的事件就不会被触发(不过用vim创建的文件的创建事件是可以捕捉到的)。我在使用FSEvents和kqueue时也遇到了同样的情况(这两个我几乎一无所知)。

我想知道有没有人能解释一下这种情况?

2 个回答

4

Watchdog的说明文档中,有一部分专门讲你提到的问题:如何在像Vim这样的编辑器中使用watchdog。建议你在你的~/.vimrc文件里加上set noswapfile这行代码。

3

Vim 通常不会先创建一个临时文件再重命名。这是为了在写文件的时候,能够保留文件系统的一些特性,比如软链接和硬链接。这个内容在 Vim 的文档中有简单的介绍,具体可以查看 写入 这一部分,更多信息可以参考 'backupcopy' 选项的文档。

你的文件更改事件可能仅限于改变目录中的 条目

撰写回答