当我保存一个文件时,什么是崇高的文本?

我正在用fsnotify来看文件,这是一个Go库,而且我发现在保存文件时触发了许多事件。

为什么崇高的文字做了这么多?

2013/12/17 20:46:25 event: "parser.go": MODIFY 2013/12/17 20:46:25 event: ".subl317.tmp": MODIFY 2013/12/17 20:46:25 event: "parser.go": DELETE 2013/12/17 20:46:25 event: ".subl317.tmp": DELETE 2013/12/17 20:46:25 event: "parser.go": CREATE 2013/12/17 20:46:27 event: "parser.go": MODIFY 2013/12/17 20:46:27 event: ".subl3aa.tmp": MODIFY 2013/12/17 20:46:28 event: ".subl28d.tmp": CREATE 2013/12/17 20:46:28 event: ".subl28d.tmp": MODIFY 2013/12/17 20:46:28 event: "parser.go": MODIFY 2013/12/17 20:46:28 event: ".subl3aa.tmp": MODIFY 2013/12/17 20:46:28 event: "parser.go": DELETE 2013/12/17 20:46:28 event: ".subl3aa.tmp": DELETE 

崇高的文本3(我假设你正在使用)默认使用primefaces保存(它可以通过在用户设置中设置"atomic_save": false来禁用),这意味着它创build临时文件,然后覆盖原始文件(和删除临时文件)保存。 在Sublime论坛上查看这个主题了解更多信息,特别是jps (Sublime的作者)对它的缺点的回复。

基本上,primefaces保存是有用的,因为如果在保存期间发生任何事情(理论上)不应该以损坏的原始文件结束。 缺点包括潜在的文件元数据丢失(尽pipeSublime使用本机OS X和Windows API来防止这种情况),具有非标准权限的目录中的意外行为(例如,它们允许修改现有文件,而不是创build新文件),当保存到一些networking驱动器或像Dropbox这样的服务时,我亲身体验过的问题。

编辑

由于我本来是回答这个问题的,所以我遇到了一些问题,像LESS / SASS / SCSS,Guard等后保存的文件监视编译器/预处理器没有做他们的事情,因为他们正在观察的原始文件是被primefaces保存删除,然后再次创build,但他们没有再看。 在使用networking文件系统,特别是SSHFS时,也会严重影响文件I / O速度。 理论上这是一个好主意,但是如果你不知道它在那里或者它在做什么的话会造成严重的后果,所以如果你对networking/共享/观看的文件做任何types的工作,最好转向它关了。 只需进入Preferences -> Settings-User并添加这一行

 "atomic_save": false 

到最后(该文件必须是有效的JSON ,所以确保有一个逗号,在前一行之后)。 保存,你很好走!

UPDATE

至于Sublime Text 3 Build 3072, atomic_save默认现在是禁用的! 如果你是一个注册用户,你可以在这里下载最新的开发版本。 此function尚未被移植到公开testing版(目前Build 3065),但希望新版本即将发布。 截至二零一五年二月至三月,Sublime的发展速度大幅提升,并增加了多项新function。 一旦这些错误消失了,一个新的公开版应该即将出版。

更新到UPDATE

"atomic_save": false是(截至2015年3月)现在使用Build 3080及更高版本的默认设置。

如果是与name.php文件相关的,保存后会得到另一个name.php-tmp文件,那么可以从首选项 – >浏览软件包中 删除PHPTools 软件包 ,它会被纠正。