Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / doc / usr_30.jax
blob8c608165eb31ff4c893d253d19c37b92ea18c427
1 *usr_30.txt*    For Vim バージョン 7.2.  Last change: 2007 Nov 10
3                      VIM USER MANUAL - by Bram Moolenaar
5                                プログラムの編集
8 プログラミングに役立つ機能が Vim にはたくさんあります。プログラムをコンパイル
9 してエラーが出た行にジャンプしたり、言語に合わせて自動的にインデントしたり、コ
10 メントを整形したりできます。
12 |30.1|  コンパイル
13 |30.2|  C 言語系インデント
14 |30.3|  インデント設定の自動化
15 |30.4|  その他のインデント
16 |30.5|  タブとスペース
17 |30.6|  コメントの整形
19 次章: |usr_31.txt|  GUI を活用する
20 前章: |usr_29.txt|  プログラムの中を移動する
21 目次: |usr_toc.txt|
23 ==============================================================================
24 *30.1*  コンパイル
26 Vim にはクイックフィックス (quickfix) 機能があります。これは、Vim の中でプログ
27 ラムをコンパイルして、エラーになった場所に移動し、エラーを修正するための機能で
28 す。そうして、正常にコンパイルできるまでコンパイルとエラー修正を繰り返します。
30 次のコマンドは "make" を実行し、その出力を読み込みます (引数はそのまま渡されま
31 す): >
33         :make {arguments}
35 エラーが発生するとそれが認識され、最初のエラーにカーソルが移動します。
36 ":make" の使い方を実際に見てみましょう。(典型的な :make セッションはもっと多く
37 のエラーあるいは少しのゴミを出力しますが) ":make" を実行すると次のような出力が
38 画面に表示されます:
40         :!make | &tee /tmp/vim215953.err ~
41         gcc -g -Wall -o prog main.c sub.c ~
42         main.c: In function 'main': ~
43         main.c:6: too many arguments to function 'do_sub' ~
44         main.c: At top level: ~
45         main.c:10: parse error before '}' ~
46         make: *** [prog] Error 1 ~
48         2 returned ~
49         "main.c" 11L, 111C ~
50         (3 of 6): too many arguments to function 'do_sub' ~
51         Hit ENTER or type command to continue ~
53 "main.c" の中でエラーが発生していることが確認できると思います。<Enter> を押す
54 と "main.c" ファイルが開き、6 行目 (最初のエラー) にカーソルが移動します。自分
55 でファイルを開く必要はありません。Vim はエラーメッセージを認識できます。
57                 +---------------------------------------------------+
58                 |int main()                                         |
59                 |{                                                  |
60                 |       int i=3;                                    |
61       cursor -> |       do_sub("foo");                              |
62                 |       ++i;                                        |
63                 |       return (0);                                 |
64                 |}                                                  |
65                 |}                                                  |
66                 | ~                                                 |
67                 |(3 of 12): too many arguments to function 'do_sub' |
68                 +---------------------------------------------------+
70 このコマンドで次のエラーに移動できます: >
72         :cnext
74 カーソルが 10 行目に移動します。ファイルの最終行に余分な '}' がありますね。長
75 すぎるエラーメッセージは省略して表示されます。全部を表示するには次のコマンドを
76 使います: >
78         :cc
80 すべてのエラーメッセージを表示するには ":clist" コマンドを使います。次のような
81 出力が表示されます: >
83         :clist
84 <       3 main.c: 6:too many arguments to function 'do_sub' ~
85         5 main.c: 10:parse error before '}' ~
87 ファイル名と行番号が認識された行だけが表示されますが、それは、重要なのはそのよ
88 うな行だけで、他の行は無駄なメッセージであると判断されるからです。しかし時に
89 は、認識されなかった行が重要な情報を含んでいることもあります。例えばリンカが未
90 解決の関数をエラー表示した場合などです。すべてのメッセージを表示するにはコマン
91 ドに "!" を付けます: >
93         :clist!
94 <       1 gcc -g -Wall -o prog main.c sub.c ~
95         2 main.c: In function 'main': ~
96         3 main.c:6: too many arguments to function 'do_sub' ~
97         4 main.c: At top level: ~
98         5 main.c:10: parse error before '}' ~
99         6 make: *** [prog] Error 1 ~
101 現在のエラーは強調表示されます。前のエラーに戻るには次のコマンドを使います: >
103         :cprevious
105 エラーリストを移動するコマンドは他にもあります:
107         :cfirst         最初のエラー
108         :clast          最後のエラー
109         :cc 3           3つ目のエラー
112 他のコンパイラを使う
113 --------------------
115 ":make" コマンドが実際に実行するプログラムは 'makeprg' オプションで設定しま
116 す。通常は "make" に設定されていますが、例えば Visual C++ を使う場合は "nmake"
117 に設定する必要があります: >
119         :set makeprg=nmake
121 オプションにはプログラムの引数も含めることができます。特殊文字はバックスラッ
122 シュでエスケープしてください。例: >
124         :set makeprg=nmake\ -f\ project.mak
126 プログラムの設定には特殊なキーワードが使えます。文字 % はカレントファイルの名
127 前に展開されます。例えば次のように設定すると: >
129         :set makeprg=make\ %
131 main.c を編集しているときに ":make" を実行すると次のコマンドが実行されます: >
133         make main.c
135 これ自体はそれほど便利ではありませんが、すこし変更して :r (root) 修飾子を使う
136 とどうでしょう: >
138         :set makeprg=make\ %:r.o
140 これで、実行されるコマンドは次のようになります: >
142         make main.o
144 修飾子については |filename-modifiers| を参照してください。
147 古いエラーリスト
148 ----------------
150 例えば ":make" を実行したときに、一つのファイルで警告メッセージが出て、他の
151 ファイルではエラーが出たとします。エラーを修正し、本当に直ったかどうかを確認す
152 るためにもう一度 ":make" を実行しました。さて、ここで先程の警告メッセージを確
153 認しようとしても、エラーリストには警告メッセージありません。なぜなら、警告メッ
154 セージを出したファイルは再コンパイルされなかったからです。次のコマンドで古いエ
155 ラーリストに戻ることができます: >
157         :colder
159 ":clist" と ":cc {nr}" を使って、警告が発生した場所にジャンプしましょう。
160 次のコマンドで新しいエラーリストに戻れます: >
162         :cnewer
164 全部で 10 個までのエラーリストを保持しておくことができます。
167 他のコンパイラを使う
168 --------------------
170 コンパイラが出力するエラーメッセージの書式を調べ、'errorformat' オプションを設
171 定する必要があります。このオプションの構文は非常に複雑ですが、どのようなコンパ
172 イラにも対応できます。詳しい説明は |errorformat| を参照してください。
174 複数のコンパイラを使うとき、コンパイラを変更するたびに 'makeprg' や
175 'errorformat' を設定するのは面倒ですよね。簡単な方法が用意されています。例え
176 ば、Microsoft Visual C++ なら次のように設定します: >
178         :compiler msvc
180 "msvc" 用のスクリプトが検索され、適切なオプションが設定されます。
181 自分で設定スクリプトを書くこともできます。|write-compiler-plugin| 参照。
184 出力のリダイレクト
185 ------------------
187 ":make" コマンドは、実行したプログラムの出力をエラーファイルにリダイレクトしま
188 す。その動作はいろいろな要因に依存しています (例えば 'shell' オプション)。
189 ":make" コマンドがプログラムの出力を拾えていないようなら、'makeef' オプション
190 と 'shellpipe' オプションを確認してみてください。'shellquote' オプションと
191 'shellxquote' オプションも関係あるかもしれません。
193 どうしても ":make" コマンドのリダイレクトが機能しない場合は、シェルからコンパ
194 イルを実行して、その出力をファイルにリダイレクトしてください。そして、次のコマ
195 ンドでそのファイルを読み込みます: >
197         :cfile {filename}
199 ":make" コマンドと同様にエラーにジャンプできます。
201 ==============================================================================
202 *30.2*  C 言語系インデント
204 プログラムを適切にインデントするとコードが読みやすくなります。Vim の機能を使え
205 ばインデントするのは簡単です。C 言語、あるいは C++ や Java などの C スタイルの
206 プログラムなら 'cindent' オプションをオンに設定してください。C 言語のインデン
207 トは組み込みで用意されていて、複雑な構文でも適切にインデントできます。インデン
208 トに使うスペースの数は 'shiftwidth' オプションで設定します。スペース 4 個くら
209 いが適切でしょうか。次のコマンドで設定できます: >
211         :set cindent shiftwidth=4
213 このオプションを設定すると、例えば "if (x)" と入力したときに、次の行が自動的に
214 インデントされます。
216                                     if (flag)
217         インデントが増える --->          do_the_work();
218         インデントが減る   <--      if (other_flag) {
219         インデントが増える --->          do_file();
220         インデントそのまま               do_some_more();
221         インデントが減る   <--      }
223 波カッコ ({}) の中でテキストを入力すると、最初の行でインデントが増え、最後の行
224 でインデントが減ります。インデントが減るのは '}' を押したタイミングです (入力
225 を予測することはできないので)。
227 自動インデントには、コーディングのミスを早く発見できるという副作用があります。
228 例えば、関数の最後で } を入力したときに、インデントが本来よりも多くなったとし
229 たら、どこかで } を入力し忘れています。"%" コマンドを使って、最後に入力した }
230 と対になっている { を探しましょう。
231 同様に、) や ; を忘れると、次の行のインデントが増えます。もし予想よりもインデ
232 ントが多くなってしまった場合は直前の行を確認してください。
234 書式が汚いコードを編集するとき、あるいは編集によってインデントが崩れてしまった
235 場合、コードを再インデントする必要があります。それには "=" オペレータを使いま
236 す。最も単純なのは次の使い方です: >
238         ==
240 現在行がインデントされます。他のオペレータと同様、使い方は三通りあります。ビ
241 ジュアルモードで "=" を使うと、選択範囲の行がインデントされます。テキストオブ
242 ジェクトで便利なのは "a{" です。これは現在のブロックを選択します。つまり、次の
243 コマンドでコードのブロックをインデントできます: >
245         =a{
247 コードが根本的に汚い場合は、次のコマンドでファイル全体を再インデントできます:
249         gg=G
251 ただし、手作業で丁寧にインデントされたファイルに対してこれを実行してはいけませ
252 ん。自動インデントは良い仕事をしてくれますが、場合によってはそのルールを破る必
253 要もあるからです。
256 インデントスタイルの設定
257 ------------------------
259 インデントスタイルは人によってさまざまです。初期設定では 90% のプログラマーが
260 満足するようなスタイルに設定されています。しかし、世の中にはいろいろなスタイル
261 があるので、必要なら、'cinoptions' を設定することで、インデントスタイルをカス
262 タマイズできます。
263 'cinoptions' の初期設定は空です。その場合はデフォルトのスタイルが使われます。
264 このオプションに値を追加していくことでスタイルを変更できます。例えば、波カッコ
265 の位置を次のようにしたい場合は:
267         if (flag) ~
268           { ~
269             i = 8; ~
270             j = 0; ~
271           } ~
273 次のコマンドを使います: >
275         :set cinoptions+={2
277 設定できる項目はたくさんあります。|cinoptions-values| 参照。
279 ==============================================================================
280 *30.3*  インデント設定の自動化
282 C ファイルを開くたびに 'cindent' オプションを設定するのは面倒ですよね。インデ
283 ントの設定は自動化できます: >
285         :filetype indent on
287 実際には、C ファイルに対して 'cindent' をオンにする以外の機能も有効になりま
288 す。まず最初に、ファイルタイプの認識が有効になります。認識機能は構文強調表示で
289 使われているものと同じです。
290 ファイルタイプが認識されると、そのファイルタイプ用のインデントファイルが検索さ
291 れます。Vim にはさまざまな言語に対応したインデントファイルが付属しています。イ
292 ンデントファイルが読み込まれ、自動インデントのための設定が行われます。
294 インデント設定の自動化は次のコマンドでオフにできます: >
296         :filetype indent off
298 特定のファイルタイプだけインデントを無効にしたい場合は、次のような一行だけの
299 ファイルを作成してください: >
301         :let b:did_indent = 1
303 これを、決められた名前で保存します:
305         {directory}/indent/{filetype}.vim
307 {filetype} は "cpp" や "java" といったファイルタイプの名前です。次のコマンドで
308 Vim が使っている名前を確認できます: >
310         :set filetype
312 例えばこのヘルプファイルなら次のように表示されます:
314         filetype=help ~
316 したがって、{filetype} には "help" が入ります。
317 {directory} はランタイムディレクトリです。次のコマンドの出力を調べてください:
319         set runtimepath
321 ここでは先頭のパスを使います。つまり、出力が次のようなら:
323         runtimepath=~/.vim,/usr/local/share/vim/vim60/runtime,~/.vim/after ~
325 {directory} には "~/.vim" が入ります。したがって、ファイル名は次のようになりま
326 す:
328         ~/.vim/indent/help.vim ~
330 インデントをオフにするのではなく、自分のインデントファイルを作成したい場合は、
331 |indent-expression| を参照してください。
333 ==============================================================================
334 *30.4*  その他のインデント
336 最もシンプルな自動インデントは 'autoindent' オプションを使う方法です。これは直
337 前の行と同じインデントを使います。'smartindent' はもう少しスマートです。これは
338 インデントファイルが用意されていないような場合に使います。'smartindent' は
339 'cindent' より低機能ですが、'autoindent' よりは高機能です。
340 'smartindent' をオンにすると、{ でインデントが一つ増え、} で減ります。さらに、
341 'cinwords' オプションに設定された単語が現れた場合もインデントが増えます。# で
342 始まる行は特別扱いされ、一切インデントされません。つまり、プリプロセッサディレ
343 クティブの行はインデントされません。その次の行は通常通りインデントされます。
346 インデントの訂正
347 ----------------
349 'autoindent' や 'smartindent' を設定すると、直前の行と同じインデントを使うこと
350 ができますが、自分でインデントを ('shiftwidth'の幅ずつ) 増やしたり減らしたりす
351 る必要も多々あります。それにはインサートモードで CTRL-D と CTRL-T を使うと簡単
352 です。
353 例えば、次のようなシェルスクリプトを入力してみましょう:
355         if test -n a; then ~
356            echo a ~
357            echo "-------" ~
358         fi ~
360 まず、次のオプションを設定します: >
362         :set autoindent shiftwidth=3
364 一行目を入力し、<Enter> を押して二行目を開始します:
366         if test -n a; then ~
367         echo ~
369 二行目にはインデントが必要ですね。CTRL-T を押します:
371         if test -n a; then ~
372            echo ~
374 インサートモードの CTRL-T コマンドは、'shiftwidth' の幅だけインデントを増やし
375 ます。カーソルの位置は関係ありません。
376 二行目を入力し、<Enter> を押して三行目を開始します。三行目のインデントは問題あ
377 りません。<Enter> を押して最後の行を入力します。テキストは次のようになりまし
378 た:
380         if test -n a; then ~
381            echo a ~
382            echo "-------" ~
383            fi ~
385 最後の行の余分なインデントを削除するには CTRL-D 押します。これは 'shiftwidth'
386 の幅だけインデントを減らします。カーソルの位置は関係ありません。
387 ノーマルモードでは ">>" コマンドと "<<" コマンドで同様の操作ができます。">" と
388 "<" はオペレータなので、他のオペレータと同様に、インデントを変更する範囲を三通
389 りの方法で指定できます。次の組み合わせが特に便利です: >
391         >i{
393 現在のブロックのインデントが増えます。変更されるのは {} の中だけで、{ と } 自
394 体の行は変更されません。">a{" なら {} も含まれます。次の例では、カーソルは
395 "printf" の上にあります:
397         original text           after ">i{"             after ">a{"
399         if (flag)               if (flag)               if (flag) ~
400         {                       {                           { ~
401         printf("yes");              printf("yes");          printf("yes"); ~
402         flag = 0;                   flag = 0;               flag = 0;  ~
403         }                       }                           } ~
405 ==============================================================================
406 *30.5*  タブとスペース
408 'tabstop' の初期設定は 8 です。変更することはできますが、それはトラブルの元に
409 なります。他のプログラムはあなたが使用しているタブ幅を知ることができません。そ
410 のようなプログラムでは、恐らくタブの幅は 8 であると仮定されているので、テキス
411 トが崩れて表示されてしまいます。また、ほとんどのプリンタはタブ幅を 8 で固定し
412 ています。したがって、'tabstop' を変更するのはお勧めしません。(他のタブ幅設定
413 で書かれたテキストを修正したい場合は |25.3| を参照してください。)
414 プログラムをインデントする場合、8 桁単位でインデントするとすぐに画面が埋まって
415 しまいます。しかしスペースが一つだけではインデントが目立ちません。多くのプログ
416 ラマは (折衷して) 4 桁を好んで使います。
417 <Tab> の幅は 8 桁で、インデントを 4 桁にしたいということは、<Tab> 文字を使って
418 インデントすることはできないということです。そのようなインデントには二つの方法
419 があります:
421 1.  <Tab> とスペースを混在させる。<Tab> は 1 つでスペース 8 個分の幅になるので
422     ファイルサイズの節約になります。スペース 8 個より <Tab> の方が入力も削除も
423     簡単です。
425 2.  スペースだけを使う。違うタブ幅を使う他のプログラムでもトラブルが起きませ
426     ん。
428 Vim はどちらの方法もサポートしています。
431 タブとスペースを混在させる
432 --------------------------
434 タブとスペースを混在させる場合は特別な設定は必要ありません。初期設定でうまくい
435 きます。
436 'softtabstop' オプションを設定すると編集が少し楽になります。このオプションが設
437 定されると、タブ幅が 'softtabstop' の値に設定されたかのように、<Tab> キーが動
438 作します。しかし実際にはタブとスペースが混在して使われます。
439 次のコマンドを実行すると、<Tab> キーでカーソルが 4 桁ごとに進むようになります:
441         :set softtabstop=4
443 行頭で <Tab> を押すと、スペースが 4 個挿入されます。次に <Tab> を押すと、最初
444 のスペース 4 個が削除されて <Tab> 文字が挿入されます (つまりカーソルは 8 列
445 目)。このように、スペースは可能な限り <Tab> 文字で置き換えられます。
446 バックスペースはその反対の動作になります。<BS> を押すと、'softtabstop' の幅だ
447 け削除されます。可能な限り <Tab> が使われ、余りはスペースになります。
448 次の図は、<Tab> をいくつか入力してから <BS> を使ったときの様子を示しています。
449 "." はスペースで "------->" は <Tab> です。
451         入力                        結果 ~
452         <Tab>                     ....
453         <Tab><Tab>                ------->
454         <Tab><Tab><Tab>           ------->....
455         <Tab><Tab><Tab><BS>       ------->
456         <Tab><Tab><Tab><BS><BS>   ....
458 同様の動作は 'smarttab' オプションを使っても実現できます。このオプションを設定
459 した場合、インデントの入力のために <Tab> を押すと 'shiftwidth' の幅が使われ、
460 何かの文字より後ろでは実際の <Tab> 文字が使われます。ただし、<BS> の動作は
461 'softtabstop' のときと同様にはなりません。
464 スペースだけを使う
465 ------------------
467 Tab 文字を一切使いたくない場合は 'expandtab' オプションを設定してください: >
469         :set expandtab
471 このオプションをオンにすると、<Tab> キーでスペースが入力されるようになります。
472 つまり、<Tab> 文字と同じ量のスペースが挿入され、<Tab> 文字は使われません。
473 バックスペースキーはスペースを一つずつ削除するので、<Tab> を押した後でそれを削
474 除するには <BS> を 8 回押さなければなりません。インデントの削除は CTRL-D を使
475 うと簡単です。
478 タブをスペースに変換する (あるいはその逆)
479 -----------------------------------------
481 'expandtab' を設定しても、それ以前に入力されたタブ文字は影響を受けません。つま
482 り、文章中のタブ文字はタブ文字のままです。タブ文字をスペースに変換したい場合
483 は、":retab" コマンドを使ってください。次のように使います: >
485         :set expandtab
486         :%retab
488 すべてのインデントがスペースに変換されます。ただし、何かの文字より後ろにある
489 (インデント以外の) タブ文字はそのままです。それらのタブ文字も変換したい場合は
490 コマンドに ! を付けます: >
492         :%retab!
494 これは少し注意が必要です。なぜなら、文字列の中のタブ文字も変換されてしまうから
495 です。文字列の中でタブ文字が使われているかどうかは、次の検索パターンで確認でき
496 ます: >
498         /"[^"\t]*\t[^"]*"
500 文字列の中でタブ文字を使うのはお勧めしません。トラブルを避けるためにも "\t" を
501 使ってください。
503 同様に、スペースをタブ文字に変換できます: >
505         :set noexpandtab
506         :%retab!
508 ==============================================================================
509 *30.6*  コメントの整形
511 Vim のすばらしいところはコメントを解釈できるところです。コメントの整形を指示す
512 るだけで適切に処理してくれます。
513 例えば、次のようなコメントがあるとします:
515         /* ~
516          * This is a test ~
517          * of the text formatting. ~
518          */ ~
520 最初の行に移動して次のコマンドを実行すると、コメントを整形できます: >
522         gq]/
524 "gq" はテキスト整形のためのオペレータです。"]/" はコメントの末尾に移動するコマ
525 ンドです。次のような結果になります:
527         /* ~
528          * This is a test of the text formatting. ~
529          */ ~
531 各行の行頭が適切に処理されていますね。
532 ビジュアルモードでテキストを選択してから "gq" を使う方法でも構いません。
534 新しい行を追加したい場合は、真ん中の行に移動して "o" を押します。次のような結
535 果になります:
537         /* ~
538          * This is a test of the text formatting. ~
539          * ~
540          */ ~
542 行頭のスペースと * は自動的に挿入されるので、そのままコメントを入力することが
543 できます。テキストが 'textwidth' より長くなると自動的に改行されます。そのとき
544 も、行頭の * は自動的に挿入されます:
546         /* ~
547          * This is a test of the text formatting. ~
548          * Typing a lot of text here will make Vim ~
549          * break ~
550          */ ~
552 この機能を使うには 'formatoptions' の設定が必要です:
554         r       インサートモードで <Enter> を押したときに * を挿入する
555         o       ノーマルモードで "o" または "O" を使ったときに * を挿入する
556         c       コメントを 'textwidth' の幅で改行する
558 詳しくは |fo-table| 参照。
561 コメントの定義
562 --------------
564 コメントの書式は 'comments' オプションで設定します。一行コメントと三部コメント
565 (開始、中間、終端からなるコメント) は分けて処理されます。
566 ほとんどの一行コメントは特定の文字で始まります。C++ は //、メイクファイルは
567 #、 Vim は " です。例えば、C++ のコメントなら次のように設定します: >
569         :set comments=://
571 コロンはフラグとコメント文字の区切りです。'comments' の設定は次のような形式で
572 指定します:
574         {flags}:{text}
576 この例のように、{flags} は空でも構いません。
577 複数のアイテムを指定するときはカンマで区切ります。アイテムを複数指定できるの
578 で、同じファイルの中でいろんな種類のコメントを使うことができます。例えばメール
579 を返信するときに、相手のメッセージに ">" や "!" を付けて引用する場合は、次のよ
580 うに設定します: >
582         :set comments=n:>,n:!
584 二つのアイテムが設定されました。一つは ">" で開始するコメント、もう一つは "!"
585 で開始するコメントです。"n" フラグが使われているので、コメントを入れ子にできま
586 す。つまり、">" で開始する行は、">" の後ろに他のコメントを含んでいても構いませ
587 ん。この設定により、次のようなメッセージを整形することができます:
589         > ! Did you see that site? ~
590         > ! It looks really great. ~
591         > I don't like it.  The ~
592         > colors are terrible. ~
593         What is the URL of that ~
594         site? ~
596 'textwidth' の設定を変更して (例えば 80 にして)、テキストを整形してみましょ
597 う。ビジュアルモードでテキストを選択してから "gq" を押します:
599         > ! Did you see that site? It looks really great. ~
600         > I don't like it.  The colors are terrible. ~
601         What is the URL of that site? ~
603 違う種類のコメントテキストは混ざっていませんね。
604 二行目の "I" は一行目の末尾に入れることも可能ですが、しかし、一行目は "> !" で
605 始まり、二行目は ">" で始まっているため、それらのコメントは別のものであると判
606 断されます。
609 三部コメント (A THREE PART COMMENT)
610 ------------
612 C のコメントは "/*" で始まり、中間には "*" が付き、"*/" で終わります。このよう
613 なコメントは次のように設定します: >
615         :set comments=s1:/*,mb:*,ex:*/
617 開始部分は "s1:/*" です。"s" は三部コメントの開始を示します。フラグとコメント
618 文字 "/*" をコロンで区切っています。フラグには "1" が指定されていますが、これ
619 により中間部分がスペース一個分、字下げされます。
620 中間部分は "mb:*" です。"m" は三部コメントの中間を示します。"b" フラグは、コメ
621 ント文字の後ろに空白が必要であることを示します。これを指定しないと、"*pointer"
622 などもコメントとして認識されてしまいます。
623 終端部分は "ex:*/" です。"e" は三部コメントの終端を示します。"x" は特殊なフラ
624 グです。中間の * が自動的に挿入された直後に "/" を押すと、余計なスペースが削除
625 されます。
627 詳細は |format-comments| を参照してください。
629 ==============================================================================
631 次章: |usr_31.txt|  GUI を活用する
633 Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl: