Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / doc / recover.jax
blob91b9dc8147423db5a027729d1d6ca8567890ebad
1 *recover.txt*   For Vim バージョン 7.2.  Last change: 2009 Apr 18
4                   VIM REFERENCE MANUAL    by Bram Moolenaar
7 クラッシュ後のリカバリー                            *crash-recovery*
9 あなたが明日の朝までに終わらせなければならない文書のタイピングに数時間を費や
10 していたとき、悲劇があなたを襲う。: コンピュータがクラッシュした。
12                         慌てないで!
14 あなたはVimがファイルの内容を蓄えていたファイルから、ほとんどの変更を回復でき
15 る。たいていの場合、あなたの仕事は1コマンドで回復できる。
16         vim -r filename
18 1. スワップファイル     |swap-file|
19 2. リカバリー                |recovery|
21 ==============================================================================
22 1. スワップファイル                                     *swap-file*
24 Vimは変更した箇所をスワップファイルに蓄える。編集を開始したオリジナルのファイ
25 ルとスワップファイルから、あなたのした作業は回復することができる。
27 現在使用しているスワップファイルの名前は、次のコマンドで確認できる:
29         :sw[apname]                                     *:sw* *:swapname*
31 スワップファイルの名前は、普通は編集中のファイルと同じで、拡張子が".swp"のもの
32 になる。
33 - UNIXでは、スワップファイルは編集中のファイルと同じディレクトリ内に作られ、
34   '.'が名前の前につけられる。これはディレクトリ表示からスワップファイルを隠す
35   ためである。
36 - MS-DOS マシンで、'shortname' オプションがオンのときは、オリジナルファイルの
37   '.'は'_'に置き換えられる。
38 - このファイルがすでに存在すると(たとえば、クラッシュから復帰した場合)、注意が
39   表示され、違った拡張子、".swo"、".swn"、などが用いられる。
40 - 存在しているファイルは決して上書きされない。
41 - スワップファイルはVimが編集を終えるとすぐに削除される。
43 技術情報:  '.'から'_'への置換はMS-DOS互換のファイルシステム(例、crossdos、
44            multidos)での問題を避けるためである。もしVimがMS-DOSライクなファイ
45            ルシステムを探知すると、'shortname' オプションと同じ効果を持つフラ
46            グが設定される。このフラグは違うファイルの編集を始めたときにリセッ
47            トされる。
48                                                         *E326*
49            もし".swp"ファイルがすでに存在すると、同名のファイルが存在しなくな
50            るか、".saa"となるまで最後の文字をひとつ前の文字に戻す。".saa"まで
51            存在するときは、スワップファイルは作られない。
53 'directory' オプションを設定することによって、スワップファイルを、編集している
54 ファイルとは別の場所に置くこともできる。
55 利点:
56 - ディレクトリが".swp"ファイルで汚染されることがない。
57 - 'directory' が別パーティションにある場合、ファイルのあるファイルシステムが
58   (クラッシュで)損傷を受けるリスクが減る。
59 欠点:
60 - 別ディレクトリの同一名のファイルで名前の衝突を生じうる(Vimはパス名の比較でそ
61   れを避けようとするが)。
62   これによって偽の注意メッセージが表示される。
63 - あなたがホームディレクトリで作業をしていて、他の誰かが同じファイルを編集しよ
64   うとしたとき、その人はあなたのスワップファイルに気付かないし、注意のメッセー
65   ジも表示されない。
66 Amigaでは、回復可能なramディスクを使えるが、それが100%働くという保証はない。
67 スワップファイルを通常のramディスク(AmigaではRAM:など)に置いたり、リブートによ
68 って消されてしまう場所(Unixの/tmpなど)に置くことは無意味であり、クラッシュによ
69 ってスワップファイルは失われてしまう。
71 スワップファイルを固定ディスクに置きたいときは、あなたの.vimrcファイルに次に示
72 す様なコマンドを入れる:
73         :set dir=dh2:tmp        (Amigaの場合)
74         :set dir=~/tmp          (Unixの場合)
75         :set dir=c:\\tmp        (MS-DOS and Win32の場合)
76 これらの設定はフロッピー上で編集作業をしているときには負担となる。もちろん、こ
77 の様な設定で作業をするならば、"tmp"ディレクトリを作らねばならない。
79 読取専用属性のファイルに対しては、スワップファイルは使用されない。ファイルが大
80 きくなければ、'maxmem'や'maxmemtot'で与えられた量より多くのメモリを使用するこ
81 とはない。読取専用属性のファイルについて何らかの変更が加えられたとき、スワップ
82 ファイルは無条件に作成される。
84 スワップファイルの作成を避けるために'swapfile'オプションをリセットできる。
86 既存のスワップファイルを削除する ~
88 ユーザーマニュアルの|11.3|をご覧ください。
91 スワップファイルの更新 ~
93 スワップファイルは200文字を打ち込むか、4秒間何もしなかったときに更新される。こ
94 れはバッファが変更されたときのみ行われ、動き回っているだけでは行われない。なぜ
95 常に更新が行われないかといえば、それは通常の作業が大幅に遅くなるからである。
96 200文字の設定は'updatecount'で、時間の設定は'updatetime'で変更できる。時間はミ
97 リ秒単位で与えられる。スワップファイルに書き込んだ後で、Vimはファイルとディス
98 クの同期を取る。これにはしばらく時間が掛かる(ビジーなUnixシステムにおいては特
99 に時間がかかる)。もしこれを行って欲しくなければ、'swapsync'オプションに空文字
100 列を設定すればよい。作業の成果を失う危険性は増すが。いくつかの非Unixシステム
101 (MS-DOS、Amigaなど)においては、スワップファイルはまったく書き込まれなくなるだ
102 ろう。
104 スワップファイルへの書き込みを望まないなら、'updatecount'を0に設定することで行
105 われなくなる。Vimを"-n"オプションで起動することで、同じ結果が得られる。書き込
106 みは'updatecount'を非0にすることでまた行われるようになる。これを行ったときはス
107 ワップファイルが全てのバッファに対して作られる。しかし、'updatecount'を0に設定
108 したときは、存在しているスワップファイルは消されることはなく、次に開かれたファ
109 イルから有効になる。
111 行った編集がスワップファイルに書きこまれたかを確認するには、次のコマンドを使用
112 する:
114                                                         *:pre* *:preserve*
115 :pre[serve]             全てのバッファの全てのテキストをスワップファイルに書き
116                         込む。回復のためにオリジナルが必要とされることはなくな
117                         る。
118                         このコマンドはカレントバッファにあるフラグを設定する。
119                         また、'cpoptions' にフラグ '&' が入っているならば、Vim
120                         が終了するとき、このバッファのスワップファイルは削除さ
121                         れず、バッファは読み込まれた状態のままになる。|cpo-&|
122                         {Vi: might also exit}
124 Vimのスワップファイルは最初の6文字で認識される: "b0VIM"。
125 この後に"3.0"などのバージョン番号が続く。
128 リンクとシンボリックリンク~
130 Unix では同一のファイルに2つの名前をつけることができる。それはハードリンクまた
131 はシンボリックリンク(symlink)を使って行う。
133 ハードリンクの場合、 Vim はそのファイルにつけられた他の名前を知ることができな
134 い。そのため、スワップファイルの名前は、そのファイルを開くときに使った名前に基
135 づいてつけられる。
136 そのファイルが別の名前でも開かれているかどうかのチェックは行わない。他のスワッ
137 プファイルを検出することはできないからである(ハードディスク全てを検索するとい
138 う方法は除く。それはとても遅くなるから)。
140 シンボリックリンクの場合、Vim はそのリンクが指す実際のファイルを見つけられる。
141 スワップファイルの名前は実際の名前に基づいてつけられる。よって、ユーザがどんな
142 名前でそのファイルを開いたかは関係なく、スワップファイル名は同一になる。しかし
143 次のような例外がある:
144 - シンボリックリンクがなんらかの形でループになっているとき、エラーメッセージ
145   *E773* が表示され、変更されていないファイル名が使われる。普通にファイルを保
146   存することはできない。
148 ==============================================================================
149 2. リカバリー                                                *recovery*
151 基本的なファイルの回復方法はユーザーマニュアルの|usr_11.txt|をご覧ください。
153 ファイルを回復するためのもうひとつの方法は、Vimを起動して":recover"コマンドを
154 使うことである。
155 これはVimを起動したときに"ATTENTION: Found a swap file ..."というメッセージを
156 受け取ったときには便利である。その場合には":recover"というコマンドひとつで全て
157 が済む。
158 recoverコマンドにはファイル名かスワップファイル名を渡すことができる:
160                                                         *:rec* *:recover*
161 :rec[over] [file]       スワップファイルから[file]を回復するよう試みる。もし
162                         [file]が与えられていない場合は、現在のバッファの名前が
163                         用いられる。現在のバッファの内容は失われる。このコマン
164                         ドはバッファが修正を加えられている場合に失敗する。
166 :rec[over]! [file]      ":recover"と同じだが、現在のバッファに対するどんな変更
167                         も失われる。
169                                                         *E312* *E309* *E310*
170 Vimはスワップファイルが何らかの理由で壊れているときに、いくつかの対処を提供す
171 る。Vimが見つかったものに疑問を持った場合、エラーメッセージが与えられ、"???"と
172 いうテキストが一緒に行に挿入される。回復中にエラーメッセージを受け取ったら、
173 "???"を検索することによってどこに問題があったかを知ることができる。必要なテキ
174 ストを得るためには、カットやペーストを必要とするかもしれない。
176 ほとんどは"???LINES MISSING"のようなものです。これはVimがそのテキストをオリジ
177 ナルのファイルから読み込めないことを示します。これはシステムがクラッシュした時
178 にファイルが正しくディスクに書き込まれなかったときに起こります。
180 オリジナルを上書きしたり、スワップファイルを削除する前に、回復が成功したことを
181 確認すること。回復されたファイルをどこか別の場所に保存して、'diff'によって変更
182 を加えた箇所が、ちゃんと回復されたファイルに入っているか調べてみるとよい。また
183 は |:DiffOrig| を使う。
185 回復が成功したと確信したら、スワップファイルを削除する。そうしないと、".swp"が
186 存在するというメッセージが表示されつづけることになる。
188 {Vi: 違う方法で回復し、回復できそうなときはメールが送られる}
190  vim:tw=78:ts=8:ft=help:norl: