indent(1) FreeBSD 一般コマンドマニュアル

indent

前のページ 上に戻る 次のページ

indent


            [-bbb | -nbbb] [-bc | -nbc] [-bl] [-br] [-cn] [-cdn]
            [-cdb | -ncdb] [-ce | -nce] [-cin] [-clin] [-dn] [-din]
            [-fc1 | -nfc1] [-fcb | -nfcb] [-in] [-ip | -nip] [-ln] [-lcn]
            [-lp | -nlp] [-npro] [-pcs | -npcs] [-psl | -npsl] [-sc | -nsc]
            [-sob | -nsob] [-st] [-troff] [-v | -nv]


解説

     indentC 言語プログラムの整形を行います。 input-file 中の C プログラム
     をオプションに従って整形し直します。以下で説明するオプションはファイル名
     の前後で指定できます。

     B>注: input-file のみを指定した場合、整形は「同じ場所に」行われます。つま
     り、整形結果は input-file に書き戻され、カレントディレクトリに元の
     input-file のバックアップがコピーされます。例えば input-file の名前が
     `/blah/blah/file' だったとすると、バックアップファイルの名前は file.BAK
     となります。

     indentoutput-file が指定されると、念のため、それが input-file とは異
     なっていることをチェックします。

     indent の整形スタイルは以下にあげるオプションで制御します。

     -bad, -nbad     -bad を指定すると、宣言ブロックの後ごとに空行を 1 行入れ
                     ます。デフォルトは -nbad です。

     -bap, -nbap     -bap を指定すると、関数本体の後ごとに空行を 1 行入れま
                     す。デフォルトは -nbap です。

     -bbb, -nbbb     -bbb を指定すると、コメントブロックの前に必ず空行を 1 行
                     入れます。デフォルトは -nbbb です。

     -bc, -nbc       -bc を指定すると、宣言の中のコンマの後ごとに改行を入れま
                     す。 -nbc はこれを抑止します。デフォルトは -nbc です。

     -br, -bl        -bl を指定すると、複合文は以下のように行分けされます。

                           if (...)
                           {
                             code
                           }

                     一方、デフォルトは -br ですが、以下のようになります。

                           if (...) {
                             code
                           }

     -cn             プログラムコードの右側に書かれたコメントを指定の桁位置に
                     揃えます。デフォルトでは 33 桁目に揃えられます。

     -cdn            宣言の右側に書かれたコメントを指定の桁位置に揃えます。デ
                     フォルトではプログラムコードの右側に書かれたコメントと同

     -ce, -nce       -ce は `else' を直前の `}' につけて ``} else'' のように出
                     力します。デフォルトは -ce です。

     -cin            継続行の字下げを n で指定します。継続行は、その文の最初の
                     行の先頭から指定した字数だけ字下げされます。かっこで括ら
                     れた式は -lp が有効でなければ、入れ子になっていることを示
                     すために余分に字下げされます。 -ci のデフォルトは -i と同
                     じ値です。

     -clin           case ラベル字下げ位置を switch 文の字下げ位置から n 個目
                     のタブストップにします。 -cli0.5 なら、タブストップの半分
                     になります。デフォルトは -cli0 です。

     -dn             プログラムコードの右側に書かれたものでない独立したコメン
                     トに関して、その場所を制御します。例えば -d1 で、コードの
                     字下げより 1 段左側にします。デフォルトの -d0 を指定する
                     と、プログラムコードの字下げに合わせます。下記「コメント
                     の字下げ」の節を参照して下さい。

     -din            宣言子からそれに続く識別子への字下げを文字数で指定しま
                     す。デフォルトは -di16 です。

     -dj, -ndj       -dj は宣言を左揃えにします。 -ndj は、プログラムコードと
                     同じ字下げを行います。デフォルトは -ndj です。

     -ei, -nei       else-if に対し特別な処理するよう指定します(しません)。
                     -ei は特別な処理を行い、 else に続く if は、最初の if 文
                     と同じだけ字下げされます。 -ei がデフォルトです。

     -fc1, -nfc1     -fc1 で、コメントが 1 桁目から始まっている場合も整形しま
                     す(しません)。このような場合には、おうおうにしてプログラ
                     マが意図的にそうしているのであって、 -nfc1 を使うべきでは
                     ありません。デフォルトは -fc1 です。

     -fcb, -nfcb     ブロックコメント (`/*\n' で開始するコメント) の整形を有効
                     とするかどうかを指定します。プログラマは、ブロックコメン
                     トをそれ程は注意深く手動整形していないことが多いですが、
                     再整形によって改行位置だけを変えるということは望ましくな
                     いことがあります。このような場合には -nfcb を使います。ブ
                     ロックコメントはボックスコメトのように扱われます。デフォ
                     ルトは -fcb です。

     -in             1 段の字下げ量を指定します。デフォルトは 8 文字です。

     -ip, -nip       パラメータ宣言を左マージンからさらに字下げします(しませ
                     ん)。デフォルトは -ip です。

     -ln             出力行の最大幅を指定します。デフォルトは 78 文字です。

     -lp, -nlp       継続行において括弧内のプログラムコードの位置を揃えます。
                     左括弧がその行で閉じていない時、継続行を前の行の左括弧の
                           p1 = first_procedure(second_procedure(p2,
                                                                 p3),
                                                third_procedure(p4,
                                                                p5));

     -npro           字下げのプロファイル `./.indent.pro' と `~/.indent.pro',
                     を使わないようになります。

     -pcs, -npcs     -pcs が指定されると、全ての関数呼出しの関数名と括弧の間に
                     空白を 1 つ入れます。デフォルトは、 -npcs です。

     -psl, -npsl     -psl が指定されると、関数定義における関数の名前を 1 桁目
                     から始めます。つまり、その関数の型名は前の行に置かれるこ
                     とになります。デフォルトは、 -psl です。

     -sc, -nsc       全てのコメントの左端に、アスタリスク(`*') を置きます(置き
                     ません)。デフォルトは -sc です。

     -sob, -nsob     -sob が指定されると、不要な空白行を取除きます。宣言部の後
                     ろの余分な空白行を取り除くのに便利です。デフォルトは、
                     -nsob です。

     -st             indent が標準入力に対して処理を行い、結果を標準出力に出力
                     するようします。

     -Ttypename      typename を型名として扱うように追加します。 -T は幾つ使っ
                     てもかまわないので、複数の型名を指定できます。プログラム
                     中で typedef によって定義された型名は必ず指定する必要があ
                     ります。- 多少の指定を忘れたところで実害は全くありません
                     が、プログラムは意図した程きれいには整形されないでしょ
                     う。全部の型名を指定しなければならないのは大変なように思
                     えますが、実際にはこれは C 言語のもつ問題が表面化したに過
                     ぎません。つまり、 typedef は、言語の構文解釈を変えてしま
                     うので、 indenttypedef で定義された型名を全て見付ける
                     ことができないわけです。

     -troff          troff(1) で処理できるフォーマットで出力します。 vgrind(1)
                     と全く同じ考え方に基づいて、出力をきれいにしようとしま
                     す。出力ファイルが指定されていないと、出力先として入力
                     ファイルではなく標準出力が使われます。

     -v, -nv         -v で `verbose' モードになります。 -nv は `verbose' モー
                     ドを抑止します。`verbose' モードでは、入力中の 1 行が複数
                     行に分割された場合には、その旨を表示し、終了時には出力サ
                     イズに付いての情報を付け加えるようになります。デフォルト
                     は -nv です。

     ログインディレクトリかカレントディレクトリの一方、あるいはその両方に
     .indent.pro というプロファイルを作って、その中にオプションを書いておくこ
     とにより、あなたの好みの設定を indent のデフォルトとすることができます。
     プロファイルは、ログインディレクトリ, カレントディレクトリの順で読み込ま
     れるため、カレントディレクトリに `.indent.pro'があると、そちらの指定の方
     コメントは、連続したテキストとして扱います。 indent は 1 行にできるだけ多
     くの単語(空白やタブもしくは改行で区切られた文字列)を詰め込もうとします。
     また、空白行により段落が分けられます。

   B>コB>メB>ンB>トB>のB>字B>下B>げ
     プログラムコードの右側のコメントは、コマンド行のオプション -cn で指定され
     た「コメント開始位置」から始まるようになります。その他のコメントは、コマ
     ンド行のオプション -dn が指定されると、プログラムコードがおかれている位置
     よりも n 段少なく字下げされます。1 行の内でプログラムコードが指定されたコ
     メント開始位置を超えて続いていた場合には、さらにその右へとコメントを続け
     ますが、極端に行が長かった場合には、自動的に右マージンが広くとられること
     があります。

   B>マB>クB>ロB>行
     一般に indent はプリプロセッサのマクロ行をそのまま出力します。唯一の例外
     はその行の右側にコメントが書かれている時で、そのコメントを整形します。た
     だし、マクロの展開の結果プログラムに埋込まれるコメントは処理しません。ま
     た、 indent は条件付きコンパイルのマクロ (#ifdef...#endif) を認識し、それ
     によってもたらされる構文上の異常を正しく補おうとします。

   C B>言B>語B>のB>構B>文
     indent は、C 言語の構文をかなり理解しますが、「寛容な」構文解析しか行いま
     せん。不完全だったり正しくない構文も、ごく普通のものならうまく処理しよう
     とします。とくにあげると、以下のようなマクロも適当に処理されます。

           #define forever for(;;)


環境変数

     indent は環境変数として、 HOME を使用します。


関連ファイル

     ./.indent.pro  デフォルトの設定を記述したプロファイルです。
     ~/.indent.pro  デフォルトの設定を記述したプロファイルです。


歴史

     indent コマンドは 4.2BSD で導入されました。


バグ

     indentls(1) 以上に多くのオプションを持っています。

     よくある悲惨な間違いは、ディレクトリにある全ての C プログラムを整形しよう
     として

           indent *.c

     と入力してしまうことです。おそらく、これはバグであって特徴と言うべきでは
     ないでしょう。

FreeBSD 4.4                      July 1, 1993                      FreeBSD 4.4

ABELNET VPSサービス