読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

編集中のファイルがクラッシュした時はどうしたらいいのか

vim


書いてたブログ記事が消えて、自らの不注意に起因する半ば八つ当たり的な怒りをワールドワイドに発信する哀れな男の図(プライバシー的なものに配慮して、画像にモザイク処理を施してあります。)

こうはなりたくないものですね。


スワップファイルとバックアップファイル

vimは編集時に、「.swp」または「~」がファイル名末尾についているファイルを勝手に作成します。これはそれぞれ「スワップファイル」、「バックアップファイル」と呼ばれるものです。

スワップファイル

.swpファイルはスワップファイルと呼ばれています。
スワップファイルはアプリケーションのクラッシュに備えて、 vimエディタでの編集開始時に作成され、編集後に削除される編集情報の記録ファイルです。
スワップファイルを使用していれば、vimエディタがシステムエラーで強制終了しても、 保存前のデータが失われずに済みことがあります。
http://nanasi.jp/articles/howto/file/seemingly-unneeded-file.html

スワップファイルは編集開始と共に作成され、編集終了時に削除されます。ということは編集中にvimが強制終了した場合、編集終了までいってないためにスワップファイルは残るため、そこからリカバリが可能なわけです。

リカバリは以下のコマンドで可能。

:recover
バックアップファイル

ファイル名に「~(チルダ)」が付いたファイルはバックアップファイルです。 ファイルを保存時に、変更前のファイルをもとにして作成されます。
ファイルの編集に失敗しても、このバックアップファイルを使用して、 一つ前の世代まではファイルの状態を戻せます。

バックアップファイルを使用して一つ前の世代まで戻す場合は、
vimエディタ側でのサポートは特に無いので、手作業でリカバリー作業を行います。

  1. 現行のファイルを削除する。
  2. バックアップファイルをリネームする。

http://nanasi.jp/articles/howto/file/seemingly-unneeded-file.html

:set backupの場合はバックアップファイルはそのまま保存されます。
が、:set writebackup 且つ :set nobackupが設定されていた場合はバックアップファイルはファイルの保存が成功した場合は削除されます。動作の組み合わせに付いては以下のvimのヘルプ抜粋参照。

'backup' 'writebackup' action
off off no backup made
off on backup current file, deleted afterwards (default)
on off delete old backup, backup current file
on on delete old backup, backup current file

無名ファイルの場合はどうするか

無名ファイルの場合、バックアップファイルは作成されません。が、スワップファイルは作成されます。
「.swp」がその時作成されるスワップファイル名です。ファイル名がないので、ドットの前は何もないわけです。スワップファイルの保存ディレクトリにすでに無名ファイルのスワップファイルが存在している状態で新たに無名ファイルを編集した場合、スワップファイル名は「.swo」となります。以降同じくその状態で無名ファイルを編集しようとすると末尾のアルファベットがn,m,l…と変わっていきます。