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

发布于 2024-12-06 19:35:08 字数 288 浏览 0 评论 0原文

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

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

I am using watchdog to monitor .less file change events on OS X. If I change the contents of a .less file with TextMate or Sublime Text the modification event is captured. However, if I edit the content with vim no file modification event is fired (but file creation events for files created with vim are captured). I have seen the same behaviour with FSEvents and kqueue (both of which I have practically zero knowledge of).

I wonder can anybody explain this behaviour?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流云如水 2024-12-13 19:35:08

Watchdog 的自述文件 上,有一个部分专门针对您描述的问题:关于在 Vim 等编辑器中使用 watchdog。建议在 ~/.vimrc 中使用 set noswapfile

On Watchdog's readme there is a section specifically targeting the problem you describe: About using watchdog with editors like Vim. It is suggested to use set noswapfile in your ~/.vimrc.

感情废物 2024-12-13 19:35:08

Vim 通常不会创建临时文件然后重命名它。这是为了在写入文件时保留文件系统方面的内容,例如链接(软链接和硬链接)。 Vim 文档的 Writing 部分对此进行了简要讨论,详细信息请参阅'backupcopy' 选项文档。

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

Vim normally does not create a temporary file and then rename it. This is so that filesystem aspects such as links (both soft and hard) are preserved when writing files. This is discussed briefly in the Writing section of the Vim documentation, with further information in the 'backupcopy' option documentation.

Your file change events might be limited to changing directory entries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文