Next: , Previous: , Up: Filling   [Contents][Index]


25.6.3 フィルプレフィクス

フィルプレフィクス(fill prefix)機能により、フィルされるパラグラフの各行が、特別な文字列(インデントされたパラグラフの行頭につける複数のスペースなど)で開始されるようになります。フィルプレフィクスを明示的に指定することができます。明示的に指定しない場合、Emacsは自動的にそれを推測することを試みます(Adaptive Fillを参照してください)。

C-x .

フィルプレフィクスをセットします(set-fill-prefix)。

M-q

現在のフィルプレフィクスで、パラグラフをフィルします(fill-paragraph)。

M-x fill-individual-paragraphs

リージョンをフィルします。インデントの変化は、新しいパラグラフの開始と判断されます。

M-x fill-nonuniform-paragraphs

リージョンをフィルします。パラグラフを分割する行だけを、新しいパラグラフの開始と判断します。

カレントバッファーのフィルプレフィクスを指定するには、使用したいフィルプレフィクスで開始される行に移動して、プレフィクスの最後にポイントを配し、C-x . (set-fill-prefix)とタイプします(C-xの後にピリオドです)。フィルプレフィクスをオフに切り替えるには、ポイントを行の先頭に移動してC-x .とタイプして、空のフィルプレフィクスを指定します。

フィルプレフィクスの効果がある間、フィルコマンドはフィルを行う前にパラグラフの各行のフィルプレフィクスを削除して、フィルを行った後で各行にフィルプレフィクスを挿入します(パラグラフの最初の行は変更されずに残ります。これは他の行と異なるように意図されていることがよくあるからです)。Auto Fillモードは、新しい行を作成するときにフィルプレフィクスの自動的な挿入も行います(Auto Fillを参照してください)。C-oコマンドは、行の先頭で使用したときは、新しい行を作成してフィルプレフィクスを挿入します。コマンドM-^は逆に、削除する改行の後ろにフィルプレフィクスがあれば、プレフィクスを削除します。

たとえばfill-columnが50で、フィルプレフィクスが‘;; ’の場合、以下のテキストにたいしてM-qを行うと、

;; This is an
;; example of a paragraph
;; inside a Lisp-style comment.

結果は以下のようになります:

;; This is an example of a paragraph
;; inside a Lisp-style comment.

M-qおよびパラグラフのコマンドは、フィルプレフィクスで開始されない行を、パラグラフの開始と判断します。これは、最初の行を除く各行がインデントされている形式のパラグラフにたいして、良い結果を与えます。空行、またはプレフィクスが削除されたインデントされた行も、パラグラフを分割または開始します。これは各行にコメント区切りがある、複数パラグラフにわたるコメントを記述するときに望ましいものです。

M-x fill-individual-paragraphsを使用して、各パラグラフに自動的にフィルプレフィクスをセットできます。このコマンドはリージョンをパラグラフに分割して、インデントの変化を新しいパラグラフの開始として扱い、それらのパラグラフをフィルします。したがって1つのパラグラフのすべての行は、同じ量のインデントをもちます。このインデントは、そのパラグラフにたいするフィルプレフィクスの役目を果たします。

M-x fill-nonuniform-paragraphsも同様なコマンドですが、別の方法でリージョンをパラグラフに分割します。このコマンドは、(paragraph-separateで定義される)パラグラフ開始行だけを、新しいパラグラフの開始と判断します。これは1つのパラグラフの各行は異なる量のインデントをもつことを想定しており、パラグラフの中で最小のインデント量をフィルプレフィクスに使用します。このコマンドは最初の行のインデントが、パラグラフの他の行より少なくても多くても、良い結果をもたらします。

フィルプレフィクスは、変数fill-prefixに保存されます。変数の値は文字列で、フィルプレフィクスがないときはnilです。これはバッファーごとの変数です。変数の変更はカレントバッファーだけに影響しますが、変更できるデフォルト値も存在します。Localsを参照してください。

テキストプロパティーindentationは、パラグラフのインデント量を制御する別の方法を提供します。Enriched Indentationを参照してください。