在OS X上使用vim写文件不会触发文件变更事件
我正在使用watchdog来监控OS X系统上.les文件的变化。当我用TextMate或Sublime Text编辑.les文件时,文件修改的事件会被捕捉到。但是,如果我用vim编辑文件,文件修改的事件就不会被触发(不过用vim创建的文件的创建事件是可以捕捉到的)。我在使用FSEvents和kqueue时也遇到了同样的情况(这两个我几乎一无所知)。
我想知道有没有人能解释一下这种情况?
2 个回答
4
在Watchdog的说明文档中,有一部分专门讲你提到的问题:如何在像Vim这样的编辑器中使用watchdog。建议你在你的~/.vimrc
文件里加上set noswapfile
这行代码。
3
Vim 通常不会先创建一个临时文件再重命名。这是为了在写文件的时候,能够保留文件系统的一些特性,比如软链接和硬链接。这个内容在 Vim 的文档中有简单的介绍,具体可以查看 写入 这一部分,更多信息可以参考 'backupcopy'
选项的文档。
你的文件更改事件可能仅限于改变目录中的 条目。