Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / doc / usr_11.jax
blobe647ba3de44c89867a5d3c6bc725ea560b560f91
1 *usr_11.txt*    For Vim バージョン 7.2.  Last change: 2009 Apr 18
3                      VIM USER MANUAL - by Bram Moolenaar
5                              クラッシュからの復帰
8 マシンがクラッシュした? しかも何時間もかけて編集していたところだった? 慌てな
9 いで! 作業を復元するための情報がハードディスクに記録されています。この章で
10 は、作業の復元方法や、スワップファイルの扱いについて説明します。
12 |11.1|  リカバリの基本
13 |11.2|  スワップファイルはどこにある?
14 |11.3|  クラッシュした?
15 |11.4|  さらなる情報
17 次章: |usr_12.txt|  便利な小技
18 前章: |usr_10.txt|  大規模な編集
19 目次: |usr_toc.txt|
21 ==============================================================================
22 *11.1*  リカバリの基本
24 ほとんどの場合、編集していたファイルの名前さえ覚えていれば (そしてハードディス
25 クが正しく動いていれば) ファイルのリカバリはとても簡単です。Vim を起動するとき
26 に、ファイル名に "-r" 引数を付けるだけです: >
28         vim -r help.txt
30 スワップファイル (編集中の文書を保持するのに使われる) が読み込まれ、編集してい
31 たファイルのかけらが読み込まれます。正しく動作すると、次のようなメッセージが表
32 示されます (もちろん、ファイル名は違うでしょう):
34         スワップファイル ".help.txt.swp" を使用中 ~
35         原本ファイル "~/vim/runtime/doc/help.txt" ~
36         リカバリが終了しました. 全てが正しいかチェックしてください. ~
37         (変更をチェックするために, このファイルを別の名前で保存した上で ~
38         原本ファイルとの diff を実行すると良いでしょう) ~
39         それから.swpファイルを削除してください ~
41 念のため、ファイルを違う名前で保存しましょう: >
43         :write help.txt.recovered
45 復元前のファイルと比較して、正しく復元できたどうかを確認してください。それには
46 vimdiff (|08.7|) が便利です。復元したファイルが、復元前のファイル (クラッシュ
47 する前に保存してあったファイル) の内容を含んでいることを確認し、失われた行がな
48 いかどうかも確認してください (Vim がリカバリに失敗することもあるので)。
49 リカバリ時に警告メッセージが表示された場合は、それを注意深く読んでください。ま
50 あ、そんなことは滅多にありませんが。
52 普通は、クラッシュ直前の変更はリカバリできません。スワップファイルは、四秒間入
53 力がなかったときや、約 200 文字入力されるごとに、ディスクに書き出されます。こ
54 の動作は 'updatetime' と 'updatecount' で設定できます。ですから、変更を保存す
55 る間もなしにシステムがダウンすると、最後に書き出した後の変更は失われてしまうの
56 です。
58 名前のないファイルを編集していた場合は、引数に空文字列を与えてください: >
60         vim -r ""
62 これは正しいディレクトリで実行してください。ディレクトリが違うとスワップファイ
63 ルを検出できません。
65 ==============================================================================
66 *11.2*  スワップファイルはどこにある?
68 スワップファイルはいろんな場所に保存できます。通常は元のファイルと同じディレク
69 トリに保存されます。スワップファイルを見つけるには、ファイルのあるディレクトリ
70 に移動して、次のコマンドを使います: >
72         vim -r
74 検出されたスワップファイルの一覧が表示されます。カレントディレクトリのファイル
75 のスワップファイルが別ディレクトリにある場合はそれも表示されます。ディレクトリ
76 ツリーを再帰的に処理したりはしません。
77 出力は次のようなものです:
79         スワップファイルが複数見つかりました: ~
80            現在のディレクトリ: ~
81         1.    .main.c.swp ~
82                     所有者: mool   日付: Tue May 29 21:00:25 2001 ~
83                 ファイル名: ~mool/vim/vim6/src/main.c ~
84                   変更状態: あり ~
85                   ユーザ名: mool   ホスト名: masaka.moolenaar.net ~
86                 プロセスID: 12525 ~
87            ディレクトリ ~/tmp: ~
88               -- なし -- ~
89            ディレクトリ /var/tmp: ~
90               -- なし -- ~
91            ディレクトリ /tmp: ~
92               -- なし -- ~
94 リカバリを実行したとき、スワップファイルが複数見つかった場合は、スワップファイ
95 ルの一覧が表示されるので、使いたいスワップファイルを番号で選択してください。日
96 付を見て慎重に選択してください。
97 どれを指定したらよいかわからない場合は、一つずつ試して中身を確認してください。
100 スワップファイルを直接指定する
101 ------------------------------
103 使いたいスワップファイルがわかっている場合は、スワップファイルの名前を指定すれ
104 ばリカバリすることができます。元ファイルの名前はスワップファイルから取得されま
105 す。
107 例: >
108         vim -r .help.txt.swo
110 これはスワップファイルが本来の場所以外にある場合にも便利です。うまく動作しない
111 場合は、Vim が表示したファイル名を見て、それにしたがってファイル名を変更してく
112 ださい。'directory' オプションを確認し、スワップファイルが保存される場所も確認
113 してください。
115         Note:
116         スワップファイルには、'dir' オプションに指定されたディレクトリ内の、
117         "filename.sw?" というパターンにマッチしたファイルが使われます。ワイル
118         ドカードの展開ができなかった (例えば 'shell' オプションが無効であった)
119         場合は、"filname.swp" というファイルが検索されます。それも失敗した場合
120         は、スワップファイルを直接指定してリカバリするしかありません。
122 ==============================================================================
123 *11.3*  クラッシュした?                                *ATTENTION* *E325*
125 Vim には、うっかりミスを防止するための仕組みがあります。ファイルを開こうとした
126 ときに、次のようなメッセージが表示されることがあります:
128         E325:注意 ~
129         次の名前でスワップファイルを見つけました ".main.c.swp" ~
130                     所有者: mool   日付: Tue May 29 21:09:28 2001 ~
131                 ファイル名: ~mool/vim/vim6/src/main.c ~
132                   変更状態: なし ~
133                   ユーザ名: mool   ホスト名: masaka.moolenaar.net ~
134                 プロセスID: 12559 (まだ実行中) ~
135         次のファイルを開いている最中 "main.c" ~
136                      日付: Tue May 29 19:46:12 2001 ~
138         (1) 別のプログラムが同じファイルを編集しているかもしれません. ~
139             この場合には, 変更をした際に最終的に, 同じファイルの異なる ~
140             2つのインスタンスができてしまうことに注意してください. ~
141             終了するか, 注意しながら続けます. ~
143         (2) このファイルの編集セッションがクラッシュした. ~
144             この場合には ":recover" か "vim -r main.c" ~
145             を使用して変更をリカバーします(":help recover" を参照). ~
146             既にこれを行なったのならば, スワップファイル ".main.c.swp" ~
147             を消せばこのメッセージを回避できます. ~
149 ファイルを開くとき、スワップファイルが既に存在するかどうかがチェックされます。
150 既に存在しているなら、何かがおかしくなっているのです。原因は次の二つの内のどち
151 らかでしょう。
153 1. 別のセッションが同じファイルを編集している。上記メッセージの "プロセスID"
154    の行に注目してください。次のようになっていますね:
156                 プロセスID: 12559 (まだ実行中) ~
158    "(まだ実行中)" というのは、このファイルを編集しているプロセスが、同じマシン
159    上で実行されていることを示しています。この情報は Unix 以外のシステムでは表
160    示されないかもしれません。ネットワーク越しにファイルを編集している場合も、
161    この情報は表示されません。なぜなら、そのプロセスは他のコンピュータで実行さ
162    れているからです。そのような場合は、自分で状況判断してください。
163    別の Vim が同じファイルを編集している場合、そのまま編集を続けると同じファイ
164    ルの二つのバージョンができてしまいます。後から書き込まれたファイルがもう一
165    方のファイルを上書きしてしまうので、変更内容が失われることになります。この
166    ような場合は、そのまま Vim を終了したほうがいいでしょう。
168 2. Vim またはマシンがクラッシュしたのでスワップファイルが残っている。メッセー
169    ジの日付を確認してください。スワップファイルの日付が開こうとしたファイルよ
170    りも新しく、メッセージに次の行が含まれている場合:
172                   変更状態: あり ~
174    この場合、クラッシュしたセッションが存在し、リカバリすべき内容が含まれてい
175    る可能性があります。
176    ファイルの日付がスワップファイルの日付よりも新しい場合、クラッシュした後に
177    何らかの変更が加えられた可能性があります (おそらく、リカバリした後に、スワッ
178    プファイルを消し忘れたのではないですか?)。もしくは、スワップファイルが更新
179    されてからクラッシュするまでの間にファイルが保存されたのかもしれません (そ
180    れならラッキーです。古いスワップファイルは必要ありません)。そういう場合は、
181    次のような警告が表示されます:
183       スワップファイルよりも新しいです! ~
186 読めないスワップファイル
187 ------------------------
189 ときどき、スワップファイルの名前の下に、次の行が表示されることがあります
191         [読込めません] ~
193 これには良い状態と悪い状態があります。
195 以前のセッションがファイルに変更を加えることなくクラッシュした場合は良い状態で
196 す。その場合、ゼロバイトのスワップファイルが作成されているはずです。それを削除
197 して作業を続けてください。
199 スワップファイルの読み込み権限があなたにない場合は少し悪い状態です。ファイルを
200 読み込み専用で開くか、Vim を終了するかしてください。マルチユーザーシステムで、
201 あなたが違う名前でログインしていたときに変更を加えていたのだとしたら、その名前
202 でログインしなおせば "読み込みエラー" を直せるかもしれません。あるいは、その
203 ファイルを最後に変更した (している) 人を探して話し合う必要があるかもしれませ
204 ん。
206 スワップファイルを保存しているディスクが物理的に故障している場合はとても悪い状
207 態です。幸いにも、そんなことはほとんど起こりません。(可能なら) まず、ファイル
208 を読み込み専用で開き、変更がどの程度失われたか確認してください。あなたがその
209 ファイルの責任者なら、変更をやり直す覚悟を決めましょう。
212 どうしますか?                                 *swap-exists-choices*
213 --------------
215 ダイアログがサポートされている場合、次の五つの選択肢が表示されます:
217   スワップファイル ".main.c.swp" が既にあります! ~
218   読込専用で開く([O]), とにかく編集する((E)), 復活させる((R)), ~
219   削除する((D)), 終了する((Q)), 中止する((A)): ~
221 "O" ファイルを読み込み専用で開く。リカバリが必要なくて、ただファイルを表示した
222     い場合に選択してください。他の誰かがファイルを編集しているときに、ファイル
223     の内容を変更したいのではなく、確認だけしたい場合にも使えます。
225 "E" ファイルを普通に編集する。注意!他の Vim がそのファイルを編集中の場合、そ
226     のファイルの二つのバージョンができてしまいます。そうなる前に Vim は警告を
227     発しますが、後で残念なことにならないように、最初から安全な選択をしましょ
228     う。
230 "R" スワップファイルを使ってファイルを復元する。復元すべき内容がスワップファイ
231     ルに含まれていることがわかっている場合に使ってください。
233 "Q" 終了する。ファイル編集を取り止めます。他の Vim が同じファイルを編集してい
234     る場合に使ってください。
235     Vim を起動中なら、Vim が終了します。複数のファイルを開こうとしていた場合、
236     Vim が終了するのは、それが最初のファイルだった場合のみです。":edit" コマン
237     ドで開こうとしていた場合は、ファイルを開かずに、直前のファイルに戻ります。
239 "A" 停止する。「終了する」に似ていますが、コマンドも即座に停止します。例えば、
240     複数のファイルを開くようなスクリプトを実行したときに、スクリプトを即座に停
241     止させることができます。
243 "D" スワップファイルを削除する。スワップファイルが不要なことがはっきりしている
244     場合に使ってください。例えば、スワップファイルが変更を何も含んでいない場合
245     や、ファイル本体の日付がスワップファイルより新しい場合に使います。
246     Unixでは、スワップファイルを生成したプロセスがまだ実行中の場合、この選択肢
247     は表示されません。
249 ダイアログが表示されない (ダイアログをサポートしていない Vim を使っている) 場
250 合は、手動で復元作業を実行してください。ファイルを復元するには、次のコマンドを
251 使います: >
253         :recover
256 スワップファイルの存在を常に検出できるとは限りません。例えば、他のセッションが
257 別のディレクトリにスワップファイルを保存している場合や、他のマシンのファイルを
258 編集しているためにファイルのパスが違っている場合などです。ですから、警告が表示
259 されないからといって安心しないでください。
261 スワップファイルの警告を表示したくない場合は、'shortmess' オプションに "A" フ
262 ラグを追加してください。しかし特別な理由がなければ設定を変更する必要はないで
263 しょう。
265 ==============================================================================
266 *11.4*  さらなる情報
268 |swap-file|     スワップファイルの名前と作成される場所の説明。
269 |:preserve|     スワップファイルを手動でディスクに書き込む。
270 |:swapname|     カレントファイル用のスワップファイルの名前を表示する。
271 'updatecount'   キーストロークの数。指定された数だけキーが入力されると、スワッ
272                 プファイルがディスクに書き込まれる。
273 'updatetime'    タイムアウト値。指定された時間内に入力がなかったら、スワップ
274                 ファイルがディスクに書き込まれる。
275 'swapsync'      スワップファイルを書き込んだときにディスクを同期するかどうか。
276 'directory'     スワップファイルが保存されるディレクトリの一覧。
277 'maxmem'        テキストをスワップファイルに保存せずに扱えるメモリの上限。
278 'maxmemtot'     同上。ただし、全ファイルの合計値。
280 ==============================================================================
282 目次: |usr_12.txt|  便利な小技
284 Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl: