Merge branch 'KaoriYa'
[MacVim/KaoriYa.git] / runtime / doc / usr_07.jax
blob9f176b2406d24d904da655a359f47eb55cfc83d0
1 *usr_07.txt*    For Vim バージョン 7.2.  Last change: 2006 Apr 24
3                      VIM USER MANUAL - by Bram Moolenaar
5                              複数のファイルを開く
8 どんなにファイルが多くても心配はいりません。Vim を複数起動することなしに、それ
9 らのファイルを編集できます。作業するファイルのリストを定義して、他のファイルに
10 ジャンプしたりテキストをコピーしたりできます。
12 |07.1|  他のファイルを開く
13 |07.2|  ファイルのリスト
14 |07.3|  他のファイルにジャンプする
15 |07.4|  バックアップファイル
16 |07.5|  他のファイルにテキストをコピーする
17 |07.6|  読み込み専用モード
18 |07.7|  ファイル名の変更
20 次章: |usr_08.txt|  ウィンドウの分割
21 前章: |usr_06.txt|  構文強調表示
22 目次: |usr_toc.txt|
24 ==============================================================================
25 *07.1*  他のファイルを開く
27 いままでは、ファイルを開くごとに Vim を起動しなければなりませんでしたが、もっ
28 と簡単な方法があります。次のコマンドを使ってください: >
30         :edit foo.txt
32 ファイル名は "foo.txt" に限らず何でも使えます。Vim は現在のファイルを閉じて、
33 指定されたファイルを開きます。ファイルの変更が保存されていない場合は、エラー
34 メッセージが表示され、新しいファイルは開かれません。
36         E37: 最後の変更が保存されていません (! で変更を破棄) ~
38         Note:
39         エラーメッセージの先頭には エラーID が表示されます。エラーの意味や原因
40         がわからない場合は、この ID をヘルプで引いてください。上記エラーの場合
41         は、このようにします: >
43                 :help E37
45 このエラーを回避するには、次のコマンドでファイルを保存してください: >
47         :write
49 あるいは、変更を破棄して新しいファイルを開くこともできます。(!) 文字を使ってく
50 ださい: >
52         :edit! foo.txt
54 ファイルの変更を保存せずに他のファイルを開きたい場合は、ファイルを隠す方法もあ
55 ります: >
57         :hide edit foo.txt
59 ファイルの変更はまだ破棄されませんが、ファイルは画面外に隠れてしまいます。詳し
60 くは|22.4|バッファリスト で説明します。
62 ==============================================================================
63 *07.2*  ファイルのリスト
65 Vim を起動するときに、複数のファイルを指定することができます。例: >
67         vim one.c two.c three.c
69 このコマンドは Vim を起動し、三つのファイルを開くように指示しています。Vim は
70 一つ目のファイル (one.c) だけを表示します。そのファイルの編集が終わり、次のファ
71 イル (two.c) を編集したい場合はこのコマンドを使います: >
73         :next
75 ファイルの変更が保存されていない場合は、エラーメッセージが表示され、":next" コ
76 マンドは中断されます。前節で述べた ":edit" の場合と同じです。変更を破棄するに
77 は次のコマンドを使います。 >
79         :next!
81 しかしほとんどの場合、変更を保存してから次のファイルを開くと思います。それには
82 専用のコマンドが用意されています。 >
84         :wnext
86 これは次の二つのコマンドを使うのと同じ結果となります。 >
88         :write
89         :next
92 私はドコにいるの?
93 ------------------
95 今編集しているのが引数リスト中のどのファイルなのかは、ウィンドウタイトルを見れ
96 ばわかります。そこに "(2 of 3)" のような表示があります。この場合は全部で三つの
97 ファイルがあり、今は二つ目を編集しているという意味です。
98 次のコマンドでファイルの一覧を表示できます: >
100         :args
102 これは "arguments" の省略形です。結果は次のように表示されます。
104         one.c [two.c] three.c ~
106 Vim を起動したときに指定したファイルが表示されます。編集中のファイル (ここでは
107 "two.c") は [] 記号で囲んで表示されます。
110 他のファイルへの移動
111 --------------------
113 これはファイルを一つ戻るコマンドです。 >
115         :previous
117 ":next" コマンドと同じ動作ですが、移動する方向が違います。このコマンドにも、
118 ファイル保存してから移動する専用のコマンドがあります。 >
120         :wprevious
122 一覧の最後のファイルに移動するには次のコマンドを使います。 >
124         :last
126 最初のファイルに戻るには次のコマンドです。 >
128         :first
130 ":wlast" とか ":wfirst" みたいなコマンドはありません。
132 ":next" と ":previous" にはカウンタを指定できます。例えば、二つ先のファイルに
133 進むにはこのようにします。 >
135         :2next
138 自動保存
139 --------
141 いろんなファイルを編集して回るときには、":write" で保存するのを忘れないでくだ
142 さい。変更を保存せずに移動しようとすると、エラーメッセージが表示されます。移動
143 するときはいつでも変更を保存したいと思った場合は、次のように設定してください。
144 変更が自動的に保存されるようになります。 >
146         :set autowrite
148 保存して欲しくないファイルを編集するときは、機能をオフに設定してください。 >
150         :set noautowrite
153 他のファイルリストで編集する
154 ----------------------------
156 Vim を再起動しなくても、ファイルリストを変更できます。例えば、他の三つのファイ
157 ルを編集するには次のようにします。 >
159         :args five.c six.c seven.h
161 シェルと同じようにワイルドカードを使うこともできます。 >
163         :args *.txt
165 リストの最初のファイルがまず開かれます。ここでも、現在のファイルの変更をまだ保
166 存していない場合は、ファイルを保存するか、":args!" (! が付いています) を使って
167 変更を破棄する必要があります。
170 最後のファイルまで編集した?
171 ----------------------------
172                                                         *arglist-quit*
173 ファイルリストが使われると、Vim は、すべてのファイルが編集対象だと判断します。
174 間違って Vim を終了してしまうことがないように、すべてのファイルをまだ開いてい
175 ないのに終了しようとした場合は、エラーメッセージが表示されます:
177         E173: 編集すべきファイルがあと 46 個あります。 ~
179 本当に終了してよければ、もう一度終了コマンドを実行してください。こんどは終了で
180 きます (間に他のコマンドを挟まないでください)。
182 ==============================================================================
183 *07.3*  ファイルからファイルへのジャンプ
185 CTRL-^ を使うと二つのファイル間を素早く移動できます(日本語キーボードなら ^ は
186 '-' キーの右側 (「へ」キー) にあります)。例: >
188         :args one.c two.c three.c
190 上を実行すると "one.c" が開きます。 >
192         :next
194 これで、"two.c" になりました。ここで CTRL-^ を使うと "one.c" に戻ります。もう
195 一度 CTRL-^ を押すと "two.c" に戻ります。さらに CTRL-^ を使うと "one.c" になり
196 ます。さて、ここで次のコマンドを実行します。 >
198         :next
200 すると、"three.c" になります。CTRL-^ コマンドはファイルリスト中での現在地を変
201 更しません。":next" や ":previous" のようなコマンドだけが現在地を変更します。
203 直前に編集していたファイルのことをオルタネートファイル (alternate file) と言い
204 ます。Vim の起動直後はオルタネートファイルがまだ無いため CTRL-^ は動作しませ
205 ん。
208 定義済マーク
209 ------------
211 他のファイルにジャンプすると、二つの定義済マークが使えるようになります。これは
212 非常に便利です。 >
214         `"
216 このコマンドを実行すると、以前にファイルを開いていたときにいた場所にカーソルが
217 移動します。もう一つは、最後に変更を加えた場所に設定されたマークです。 >
219         `.
221 例えば、"one.txt" を編集しているとします。ファイルの真ん中あたりで "x" を使っ
222 て文字を削除しました。そして、"G" を使って最後の行に移動し、":w" でファイルを
223 保存します。他のファイルをいくつか編集してから、":edit one.txt" で "one.txt"
224 に戻ってきました。ここで、 `" を実行すると、ファイルの最後の行にカーソルが移動
225 します。`. を実行すると、文字を削除した場所に移動します。ファイル内をいろいろ
226 と移動した後でも、`" と `. は同じ場所を覚えています。少なくとも、他の変更を加
227 えたり、別のファイルに移動したりするまでは。
230 ファイルマーク
231 --------------
233 4 章 (|04.1|) では "mx" でマークを付け、"`x" でその場所にジャンプする方法を説明
234 しました。そのマークはファイルの中だけで使えます。別のファイルを開いて、それに
235 同じマークを付けても、マークはそのファイルに固有のものとなります。つまり各ファ
236 イルはそれぞれのマークを持っていて、ファイル内に閉じているということです。いま
237 までは、マークに小文字を使ってきましたが、大文字のマークも使えます。
238 大文字のマークはグローバルで、どのファイルからでも使えます。例えば "foo.txt"
239 というファイルを開き、"50%" コマンドでファイルの真ん中にジャンプして、その場所
240 に F というマークを付けたとします: >
242         50%mF
244 次に "bar.txt" を開き、最終行にマーク B を付けます: >
246         GmB
248 さて、ここで "'F" コマンドを使うと、いきなり foo.txt の真ん中にジャンプできま
249 す。さらに、他のファイルを開いてから "'B" を入力すると、bar.txt の行末に移動で
250 きます。
252 他の場所を設定するまで、ファイルマークは同じ場所を記憶しています。そのため、一
253 度マークを付ければ、何時間も編集を行ってからでもそのマークに戻って来ることがで
254 きます。
255 マークの文字とマークを付けた場所が連想できるような単純なルールを決めておくとよ
256 いでしょう。例えば、ヘッダファイルは H 、makeファイルは M 、C 言語のソースには
257 C といった具合です。
259 マークが置いてある場所を確認するには、":marks" コマンドにそのマークを指定して
260 ください。 >
262         :marks M
264 マークを複数指定しても構いません。 >
266         :marks MCP
268 マークを使わなくても、CTRL-O と CTRL-I を使えば、古い場所と新しい場所の間を
269 ジャンプできることをお忘れなく。
271 ==============================================================================
272 *07.4*  バックアップファイル
274 初期設定ではバックアップファイルは作成されません。バックアップファイルが必要な
275 ら、次のコマンドを実行してください: >
277         :set backup
279 バックアップファイルの名前は、ファイル名の後ろに ~ を加えた名前になります。
280 例えば、ファイル名が data.txt なら、バックアップファイルは data.txt~ です。
281  ~ 以外の文字を使いたい場合は、次のように設定してください: >
283         :set backupext=.bak
285 これで、バックアップファイルの名前が data.txt.bak になります。
286 もう一つのオプション 'backupdir' についても説明しましょう。これはバックアップ
287 ファイルを保存するディレクトリを指定するオプションです。初期設定ではバックアッ
288 プは元ファイルと同じディレクトリに保存されます。たいていの場合はこれで問題ない
289 はずです。
291         Note:
292         'writebackup' がオンの場合、'backup' がオフでもバックアップファイルは
293         作成されますが、ファイルの保存が成功すると、そのバックアップファイルは
294         すぐに削除されます。これは、ファイルを保存できなかったときに、オリジナ
295         ルファイルが失われないようにするための機能です。(失敗の原因は、例え
296         ば、ディスクがいっぱいになったというのが一番ありがちな理由です。雷にや
297         られるというのも可能性は低いですがありうることです)。
300 オリジナルファイルを残す
301 ------------------------
303 ソースファイルを編集していると、変更を加える前のファイルを残しておきたいときが
304 あります。しかし、バックアップファイルはファイルを保存するたびに上書きされるの
305 で、直前のバックアップしか残らず、最初のファイルはなくなってしまいます。
306 オリジナルのファイルを残しておきたい場合は、'patchmode' オプションを設定してく
307 ださい。バックアップファイルを最初に作成するときに使う拡張子を指定します。次の
308 ように設定してください: >
310         :set patchmode=.orig
312 例えば、はじめて data.txt を開いたときに、変更を加え、保存しようとすると、変更
313 前のファイルが "data.txt.orig" という名前でコピーされます。
314 その後、ファイルを変更しても、既に "data.txt.orig" があるので、上書きはされま
315 せん。この場合もバックアップファイルは "data.txt~" (もしくは 'backupext' で指
316 定した名前) で作成されます。
317 'patchmode' が空のまま (初期設定) だと、オリジナルファイルは残りません。
319 ==============================================================================
320 *07.5*  他のファイルにテキストをコピーする
322 ここではファイルから別のファイルにテキストをコピーする方法を説明します。簡単な
323 例で始めましょう。コピーしたいテキストを含んでいるファイルを開きます。テキスト
324 の先頭にカーソルを移動して "v" を押すとビジュアルモードが開始します。テキスト
325 の末尾までカーソルを移動して "y" を押します。これでテキストがヤンク (コピー)
326 されました。
328 例えば、上の段落をコピーするには、次のようにします。 >
330         :edit thisfile
331         /ここでは
332         vjjjj$y
334 次に、このテキストをプット (ペースト) したいファイルを開きます。テキストをプッ
335 トしたい場所にカーソルを動かし、"p" コマンドでプットします。 >
336         :edit otherfile
337         /どこか
338         p
340 当然ながら、テキストのヤンクには他にもいろんなコマンドが使えます。例えば、"V"
341 でビジュアルモードを開始すると行単位で選択できますし、CTRL-V で矩形選択もでき
342 ます。"Y" で一行をヤンクしたり、"yaw"で単語をヤンク (yank-a-word) するなど、い
343 ろいろできます。
344 "p" コマンドはカーソルの後にテキストをプットします。カーソルの前にプットするに
345 は "P" を使います。Vim はヤンクしたときの選択単位 (行選択や矩形選択) を覚えて
346 いて、同じ単位でプットします。
349 レジスタを使う
350 --------------
352 あるファイルから別のファイルに数箇所のテキストをコピーしたいとき、何度も何度も
353 ファイルを切り換えると時間がかかります。テキストをレジスタにコピーして手間を省
354 きましょう。
355 レジスタとは、Vim がテキストを保持する場所です。ここでは a から z までの名前が
356 付いたレジスタを使います (レジスタは他にもあります)。では、テキストをレジスタ
357 f (fはfirstのつもり) にヤンクしてみましょう。 >
359         "fyas
361 "yas" コマンドで文をヤンクしています。"f はテキストをレジスタ f に入れるための
362 指定です。この指定はヤンクコマンドの直前に指定します。
363 さらに三行をレジスタ l (lはlineのつもり) にヤンクしてみましょう。 >
365         "l3Y
367 カウンタ (回数指定) は "l の直前に指定することもできます。テキストのブロック
368 (矩形選択) をレジスタ b (bはblockのつもり) にヤンクする場合は次のようにしま
369 す。 >
371         CTRL-Vjjww"by
373 レジスタ指定 "b を "y" コマンドの直前で指定している点に注意してください。これ
374 は重要なことです。これを "w" コマンドより前に置いてしまうとうまく動きません。
375 さて、f、l、b の三つのレジスタにテキストをヤンクできました。他のファイルを開い
376 て、テキストを挿入したい場所にカーソルを移動し、レジスタの内容をプットしましょ
377 う。 >
379         "fp
381 ヤンクの場合と同じく、レジスタ指定 "f は "p" コマンドより前に指定します。
382 どのレジスタからプットしても構いません。他のテキストをヤンクし直さない限り、レ
383 ジスタの内容は変わらないので、同じレジスタを何度でも好きなだけプットできます。
385 テキストを削除するときにも、レジスタを指定できます。テキストを何ヶ所かに移動す
386 るときなどに使ってください。例えば、単語を削除 (delete-a-word) してその内容を
387 レジスタ w に入れるには次のようにします。 >
389         "wdaw
391 何度も言うようですが、レジスタ指定は削除コマンド "d" の前に置いてください。
394 ファイルに追記する
395 ------------------
397 文章を一つのファイルにまとめたい場合は、次のコマンドを使います。 >
399         :write >> logfile
401 カレントファイルの内容が "logfile" の末尾に追記されます。テキストをコピーして、
402 "logfile" を開き、テキストをプットするより簡単です。作業を 2 手節約できます。
403 ただし、ファイルの末尾への追加しかできません。
404 ファイルの一部だけ追記したい場合は、ビジュアルモードでテキストを選択してから
405 ":write" を実行してください。テキストを選択する方法は他にもありますが、10 章で
406 説明します。
408 ==============================================================================
409 *07.6*  読み込み専用モード
411 ファイルを変更する気はなく、ただファイルの内容を見たいだけのときがあります。普
412 通に開くと、うっかり ":w" を実行して元のファイルを上書きしてしまう危険がありま
413 す。そういうときは、読み込み専用モードでファイルを開いてください。
414 Vim を読み込み専用モードで起動するには、次のコマンドを使います。 >
416         vim -R file
418 Unix なら、次のコマンドも同じ意味になります。 >
420         view file
422 "file" が読み込み専用モードで開きます。":w" をしようとしても、エラーメッセージ
423 が表示され保存はされません。
424 ファイルに変更を加えようとすると、次のような警告が表示されます。
426         W10: 警告:読込専用ファイルを変更します ~
428 警告は出ますが、変更は可能です。これは、例えばファイルを読みやすくフォーマット
429 したりするためです。
430 読み込み専用モードであることを忘れて、ファイルを修正してしまったようなときは、
431 write コマンドに ! を付けて強制保存してください。
433 完全にファイルの変更を禁止したい場合は、次のようにしてください。 >
435         vim -M file
437 これで、内容を変更しようとしてもエラーになります。例えば、ヘルプファイルはこの
438 モードで表示されています。変更しようとすると、次のエラーメッセージが表示されま
439 す。
441         E21: 'modifiable'がオフなので、変更できません ~
443 -M 引数を使えば Vim を閲覧モードに設定できますが、これは自主規制みたいなもの
444 で、次のコマンドを使えば制限はなくなってしまいます。 >
446         :set modifiable
447         :set write
449 ==============================================================================
450 *07.7*  ファイル名の変更
452 新しいファイルを作成するときに、目的に近いファイルがあるなら、それを利用するの
453 が効率的です。例えば、ファイルを移動するプログラムを作りたいとしましょう。ファ
454 イルをコピーするプログラムがすでにあるので、それを流用することにしました。 >
456         :edit copy.c
458 新しいプログラムに必要ない部分は削除してしまいましょう。次に、このファイルを新
459 しい名前で保存する必要があります。そのためのコマンドが ":saveas" です。 >
461         :saveas move.c
463 指定した名前でファイルが保存され、そのファイルが開かれます。そのため、次に
464 ":write" したときは "move.c" に保存されます。"copy.c" は変更されません。ファイ
465 ルを保存せずに、ファイルの名前だけ変更したい場合は、次のコマンドを使います。 >
467         :file move.c
469 そのファイル (move.c) は、実際のファイルではないので、"開いていない" (not
470 edited) 扱いになります。ファイルを保存しようとすると、次のメッセージが表示され
471 ることがあります。
473         E13: ファイルが存在します (! を追加で上書) ~
475 これは、実際のファイルを間違って上書きしてしまわないようにするためです。
477 ==============================================================================
479 次章: |usr_08.txt|  ウィンドウの分割
481 Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl: