Que fait Sublime Text lorsque j'enregistre un fichier?

Je regardais les fichiers avec fsnotify, qui est une bibliothèque, et j'y ai trouvé de nombreux événements déclenchés lorsque j'enregistre un fichier.

Pourquoi le texte Sublime fait-il tant de choses?

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
31
demandé sur MattDMo 2013-12-17 16:52:07

2 réponses

Sublime Text 3 (que je suppose que vous utilisez) utilise des sauvegardes atomiques par défaut (il peut être désactivé en définissant "atomic_save": false dans vos paramètres utilisateur), ce qui signifie qu'il crée des fichiers temporaires, puis écrase le fichier d'origine (et supprime le fichier temporaire) lors de la sauvegarde. Voir ce fil sur les forums Sublime pour un peu plus d'infos, notamment la réponse de jps (Auteur de Sublime) sur ses inconvénients.

Fondamentalement, l'économie atomique est utile parce que si quelque chose devait arriver pendant que vous sauvez (théoriquement) ne devrait pas se retrouver avec un fichier original corrompu. Les inconvénients incluent la perte potentielle de métadonnées de fichier (Bien que Sublime utilise des API natives OS X et Windows pour éviter cela), un comportement inattendu dans les répertoires avec des autorisations non standard (par exemple, ils permettent la modification de fichiers existants, mais pas la création de nouveaux), et les problèmes lors de l'enregistrement sur certains lecteurs réseau ou services

MODIFIER

Depuis que j'ai initialement répondu à cela, j'ai rencontré un certain nombre de questions où les compilateurs/préprocesseurs post-sauvegarde de fichiers comme LESS/SASS/SCSS, Guard, etc. ne faisaient pas leur truc parce que le fichier original qu'ils regardaient avait été supprimé par Atomic saving, puis créé à nouveau, mais ils ne le regardaient plus. Il peut également affecter gravement la vitesse d'E/S des fichiers lorsque vous travaillez avec des systèmes de fichiers réseau, SSHFS en particulier. C'est une bonne idée en théorie, mais il peut faire des ravages si vous ne savez pas, c'est là ou ce qu'il fait, donc si vous allez faire un travail en réseau/shared/regardé les fichiers, il est probablement préférable de l'éteindre. Il suffit d'aller à Preferences -> Settings-User et ajouter cette ligne

"atomic_save": false

À la fin (le fichier doit être valide JSON, alors assurez-vous il y a une virgule , après la ligne précédente). Enregistrer, et vous êtes prêt à aller!

mise à JOUR

À partir de Sublime Text 3 Build 3072, atomic_save est maintenant désactivé par défaut! Si vous êtes un utilisateur enregistré, vous pouvez télécharger la dernière version de développement ici. Cette fonctionnalité n'a pas été portée sur la version bêta publique (actuellement Build 3065), mais nous espérons qu'une nouvelle version sera bientôt disponible. En Février / Mars 2015, le rythme de développement de Sublime a considérablement augmenté, avec un certain nombre de nouvelles fonctionnalités ayant été ajoutées. Une fois que les bugs ont été élaborés, une nouvelle version publique devrait être prochain.

Mise à jour de la mise à jour

"atomic_save": false est (à partir de mars 2015) maintenant dans les paramètres par défaut de Build 3080 et supérieur.

70
répondu MattDMo 2015-09-29 15:38:41

Si elle est liée à nom.php fichier,et après l'enregistrement, vous obtenez un autre nom.php-tmp Fichier, alors vous pouvez Supprimer PHPTools Paquet de préférence - > parcourir les paquets , Il sera rectifié.

2
répondu Kaushik Das 2016-02-13 15:00:09