2012-11-26 16 views
7

Credo che sia progettato per essere atomico, e ho sentito che vim salverà in una directory temporanea e quindi mv il file temporaneo sul vecchio file per garantire che EITH sia presente la vecchia versione O la nuova versione, e mai metà di uno o nessun file, anche se l'alimentazione è disattivata a metà-salvataggio.Come fa vim salvare i file?

Qualcuno ha più dettagli?

risposta

4

Hai ragione riguardo all'approccio generale; per ulteriori informazioni, vedere :help backup.

È possibile perfezionare l'approccio tramite le impostazioni; questo è importante quando si gestiscono file rigidi o si utilizzano API come inotify per rispondere alle modifiche del file system.

Inoltre, lo swapfile (:help swap-file) e l'annullamento persistente (:help persistent-undo) consentono di evitare qualsiasi perdita di dati, anche in caso di arresto anomalo del disco.

7

Il modo in cui viene eseguito dipende dai valori di diverse opzioni.

L'opzione principale che ha effetto su questo è backupcopy, su sistemi unix il cui valore predefinito è yes su altri sistemi è impostato su auto. Solo se è impostato su no puoi essere certo che le scritture verranno eseguite come nella tua domanda. Se impostato su yes, vim sovrascrive invece il contenuto del file originale dopo aver eseguito una copia di backup. Se impostato su auto, si comporterà come nella domanda se rileva che gli attributi possono essere passati e il file non è un collegamento (un link simbolico o un collegamento fisico). Esistono altri valori per l'opzione di interruzione dei collegamenti, consultare l'aiuto per tale opzione.

Altre opzioni che lo riguardano sono backup, writebackup. Almeno uno di questi deve essere impostato per fare un backup. Se non viene eseguito alcun backup, il contenuto del file originale verrà sovrascritto. L'opzione writebackup si imposta su on finchè vim è stato compilato con il supporto per esso. C'è anche l'opzione backupskip che specifica un elenco di modelli di file per i quali non verrà eseguito alcun backup; se uno di questi modelli corrisponde al file, di nuovo non verrà eseguito alcun backup e il contenuto del file originale verrà sovrascritto.

Problemi correlati