我正在尝试使用inotifywait来监视特定文件夹并在需要时重新编译.问题是我正在大量使用
vim,当我在
vim中编辑时,任何修改过的文件实际上都会触发一些“冗余”事件,例如:
:w sass/somefolder/ CREATE 4913 sass/somefolder/ CREATE some sass/somefolder/ MODIFY some
我花了一些时间才意识到实际上所有东西都可以使用inotifywait – 我尝试使用nano,一切都按预期运行,只有“MODIFY”被触发,只有一次.
我试过编辑(仅用于测试目的,不要用力评判我)Emacs以及Emacs也存在问题 – 每次我按Ctrl-X Ctrl S MODIFY触发3次.
问题是如何解决vim中多余事件的问题?
顺便说一句,我的.vimrc中的目录和backupdir不在受监视的文件夹中.
UPD:This link explains为什么事情会发生如何发生,但我仍然不知道如何解决这个问题.好吧,当然我可以忽略4913包含字符串,但即使对于试图使用inotify来编译SASS的人来说,这太过愚蠢)))
UPD:VIM版本是7.3.429
如果您想在编辑文件后触发操作(例如重新编译代码),通常需要查看IN_CLOSE_WRITE事件并忽略其他所有事件.
您绝对不希望监视IN_MODIFY事件,因为正如您所发现的那样,在编辑文件时可能会多次触发它们.
所以:
inotifywait -e close_write ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。