アトミックに設計されていると思いmv
ます。vimは一時ディレクトリに保存し、次に古いファイルの上に一時ファイルを保存して、古いバージョンまたは新しいバージョンのいずれかが存在することを確認します。保存中に電源をオフにしても、ファイルはありません。
誰か詳細がありますか?
アトミックに設計されていると思いmv
ます。vimは一時ディレクトリに保存し、次に古いファイルの上に一時ファイルを保存して、古いバージョンまたは新しいバージョンのいずれかが存在することを確認します。保存中に電源をオフにしても、ファイルはありません。
誰か詳細がありますか?
これがどのように行われるかは、いくつかのオプションの値によって異なります。
これに影響を与える主なオプションはbackupcopy
、UNIXシステムでは、これはデフォルトyes
で他のシステムではデフォルトになりauto
ます。に設定されている場合にのみno
、質問のように書き込みが行われることが保証されます。vimに設定するyes
と、バックアップコピーを作成した後、代わりに元のファイルの内容が上書きされます。に設定するとauto
、属性を渡すことができ、ファイルがリンク(シンボリックリンクまたはハードリンク)ではないことが検出された場合、質問のように動作します。リンクを解除するオプションには追加の値があります。そのオプションのヘルプを参照してください。
これに影響する他のオプションはbackup
、writebackup
です。バックアップを作成するには、これらの少なくとも1つを設定する必要があります。バックアップが行われない場合、元のファイルの内容が上書きされます。このwritebackup
オプションは、vimがサポート付きでコンパイルされている限り、デフォルトでオンになっています。backupskip
バックアップが実行されないファイルパターンのリストを指定するオプションもあります。これらのパターンの1つがファイルと一致する場合、バックアップは実行されず、元のファイルの内容が上書きされます。
あなたは一般的なアプローチについて正しいです。詳細については、を参照してください:help backup
。
設定を介してアプローチを微調整できます。これは、ハードラインされたファイルを処理する場合、またはinotifyなどのAPIを使用してファイルシステムの変更に対応する場合に重要です。
さらに、swapfile(:help swap-file
)とpersistent undo(:help persistent-undo
)は、ディスクがクラッシュした場合でも、データの損失を回避するのに役立ちます。