Emacs/Emacsの便利な機能/オートセーブ

ユーザの誤操作やシステムの障害などによって編集中のバッファが消えたり,Emacsがキー入力を受けつけなくなってしまうことがあります.そのような場合に備えて,Emacsでは編集前や編集中のファイルを保存しています.

編集前のファイル

編集したファイルを保存するとき,編集開始前のファイル内容はファイル名の後に`~'をつけて保存されます.例えば,`test.txt'という名前のファイルをEmacsで編集してから保存すると,`test.txt'の他に編集前のファイルが`test.txt~'という名前で保存されます.

編集内容を取り消したい場合などは取り消し機能を利用する他に,`~'のついたファイルをバッファに読み込み,編集開始前の内容に戻してから編集作業をし, C-x C-wでファイル名を指定して保存すればよいです.


`~'のついたファイルには``編集開始時点''での内容が保存されます.保存する度に``前回セーブした時点''での内容が保存されているわけではないので 注意してください.

編集中のファイル

Emacsは,定期的にバックアップとして編集中のファイルを保存しています.このときのファイル名は,ファイル名の前後に#をつけた名前が使われます.このファイルは,C-x C-sなどによって,バッファの内容がファイルにセーブされた時点で削除されます.

リカバーファイルからの復帰 -- (M-x recover-file)

何らかの原因により編集中のバッファが消えてしまったときは,ファイル名の前後に`#'がついたファイルから,編集のある程度の段階までを復帰できます.例えば,`test.tex'というファイルを編集中にバッファが消えてしまったときは,`#test.tex#'というファイルから編集途中の状態に復帰できます. M-x recover-fileと入力すると,エコーラインに次のようなメッセージが表示されます.

Recover file: ~/_
ここで復帰させたいファイル名を入力します.この例では`test.tex'と入力すると,`#test.tex#'をもとに`test.tex'を復帰させてよいか確認してきます(図3.2).ここでyesと答えれば,ファイルをバッファ上に復帰できます.この際,`#test.tex#'の名前をmvコマンドで`test.tex'に変更してもファイルは復帰しないので注意してください.



図 3.2:ファイルの復帰
図 3.2:ファイルの復帰



オートセーブは便利ですが,作業が無事に終了すれば最後に`~'や`#'のついたファイルは不要になるので,適宜削除してください.CNSでは,`#'ではじまるファイルは3日間で自動的に消去されます.