フィル(fill:
充填)とは、指定された最大幅付近(ただし超過せず)に、(行ブレークを移動することにより)行の長さを調整することを意味します。加えて複数行を位置揃え(justify)することもできます。位置揃えとはスペースを挿入して左および/または右マージンを正確に整列させることを意味します。その幅は変数fill-column
により制御されます。読みやすくするために行の長さは70列程度を超えないようにするべきです。
テキストの挿入とともに自動的にテキストをフィルするAuto Fillモードを使用できますが、既存テキストの変更では不適切にフィルされたままになるかもしれません。その場合にはテキストを明示的にフィルしなければなりません。
このセクションのコマンドのほとんどは有意な値をリターンしません。フィルを行うすべての関数はカレント左マージン、カレント右マージン、カレント位置揃えスタイルに留意します(fillのマージンを参照)。カレント位置揃えスタイルがnone
なら、フィル関数は実際には何も行いません。
フィル関数のいくつかは引数justifyを受け取ります。これが非nil
なら、それは何らかの類の位置揃えを要求します。特定の位置揃えスタイルを要求するためにleft
、right
、full
、center
を指定できます。これがt
なら、それはそのテキスト部分にたいしてカレント位置揃えスタイルを使用することを意味します(以下のcurrent-justification
を参照)。その他すべての値はfull
として扱われます。
インタラクティブにフィル関数を呼び出すには際、プレフィクス引数の使用はjustifyにたいして暗に値full
を指定します。
このコマンドはポイント位置、またはその後のパラグラフ(paragraph:
段落)をフィルする。justifyが非nil
なら、同様に各行が位置揃えされる。これはパラグラフ境界を探すために、通常のパラグラフ移動コマンドを使用する。Paragraphs in The GNU Emacs Manualを参照のこと。
もしregionが非nil
で、Transient
Markモードが有効かつマークがアクティブなら、このコマンドはカレントパラグラフのみフィルするかわりに、リージョン内すべてのパラグラフをフィルするためにコマンドfill-region
を呼び出す。このコマンドがインタラクティブに呼び出された際は、regionはt
。
このコマンドはstartからendのリージョン内のすべてのパラグラフをフィルする。justifyが非nil
なら同様に位置揃えも行う。
nosqueezeが非nil
なら、それは行ブレーク以外の空白文字を残すことを意味する。to-eopが非nil
なら、それはパラグラフ終端(以下のuse-hard-newlines
が有効なら次のhard改行)までのフィルを維持することを意味する。
変数paragraph-separate
はパラグラフを分割する方法を制御する。編集で使用される標準的な正規表現を参照のこと。
Emacsのほとんどのバッファーでは文字数とchar-width
にもとづいて(fill-region
のような)fill関数が機能するように、等幅(monospace)のテキストを使用する。しかしEmacsは可変幅フォント(proportional
font)を使ったイメージを含むテキストのような、他のタイプのオブジェクトを描画でき、正にこれを処理するために存在するのがpixel-fill-region
である。これはstartとendの間にあるリージョンのテキストをピクセル単位の粒度でfillするので、可変ピッチのフォントや異なるいくつかのフォントはサイズに関わらずfillされるようになる。引数pixel-widthはfill後に線に許容される最大のピクセル幅を指定する。これはfill-region
におけるfill-column
のピクセル解像度に相当する。以下のLispコードはプロポーショナルフォントを用いてテキストを挿入してから、300ピクセルを超えない幅になるようにfillする例である:
(insert (propertize "This is a sentence that's ends here." 'face 'variable-pitch)) (pixel-fill-region (point) (point-max) 300)
startが行頭にある場合には、後続行のインデントのプレックスとしてstartの水平位置をピクセル単位に変換した値が用いられる。
pixel-fill-width
はピクセル幅を計算するために使用できるヘルパー関数である。引数なしならカレントウィンドウの幅より若干小さい値をリターンする。1つ目のオプションcolumnsの値には、fill-column
が用いる標準的なモノスペースフォントによる列数を指定する。2つ目のオプションの値は使用するウィンドウである。典型的には以下のように使用する:
(pixel-fill-region start end (pixel-fill-width fill-column))
このコマンドはリージョン内の各パラグラフを、それの固有なフィルプレフィクスに応じてフィルする。したがってパラグラフの行がスペースでインデントされていれば、フィルされたパラグラフは同じ様式でインデントされた状態に保たれるだろう。
最初の2つの引数startとendはフィルするリージョンの先頭と終端。3つ目の引数justify、4つ目の引数citation-regexpはオプション。justifyが非nil
なら、そのパラグラフはフィルと同様に位置揃えも行われる。citation-regexpが非nil
なら、それはこの関数がメールメッセージを処理しているのでヘッダーラインをフィルするべきではないことを意味する。citation-regexpが文字列なら、それは正規表現として扱われる。それが行の先頭にマッチすれば、その行は引用マーカー(citation
marker)として扱われる。
fill-individual-paragraphs
は通常はインデントの変更を新たなパラグラフの開始とみなす。fill-individual-varying-indent
が非nil
ならセパレーターラインだけがパラグラフを分割する。その場合には、最初の行からさらにインデントが追加されたパラグラフを処理することが可能になる。
この変数は上述のようにfill-individual-paragraphs
の動作を変更する。
このコマンドはテキストのリージョンを1つのパラグラフとみなしてそれをフィルする。そのリージョンが多数のパラグラフから構成されていたらパラグラフ間の空行は削除される。justifyが非nil
ならフィルとともに位置揃えも行う。
nosqueezeが非nil
なら、それは改行以外の空白に手を加えずに残すことを意味する。squeeze-afterが非nil
なら、それはリージョン内の位置を指定して、その位置より前にある改行以外の空白文字に手を加えず残すことを意味する。
Adaptive
Fillモードでは、このコマンドはフィルプレフィクスを選択するためにデフォルトでfill-context-prefix
を呼び出す。Adaptive Fillモードを参照のこと。
このコマンドはその行が正確にfill-column
で終わるように単語間にスペースを挿入する。リターン値はnil
。
引数howが非nil
なら、それは位置揃えスタイルを明示的に指定する。指定できる値はleft
、right
、full
、center
、またはnone
。値がt
なら指定済みの位置揃えスタイル(以下のcurrent-justification
を参照)にしたがうことを意味する。nil
は位置揃えfull
と同じ。
eopが非nil
なら、それはcurrent-justification
がfull位置揃えを指定する場合にleft位置揃えだけを行うことを意味する。これはパラグラフ最終行にたいして使用される。パラグラフ全体がfull位置揃えだったとしても最終行はfull位置揃えであるべきではない。
nosqueezeが非nil
なら、それは内部のスペースを変更しないことを意味する。
この変数の値は位置揃えに使用するスタイルをテキストプロパティで指定しないテキストにたいするスタイルを指定する。可能な値はleft
、right
、full
、center
、またはnone
。デフォルト値はleft
。
この関数はポイント周辺のフィルに使用するための適正な位置揃えスタイルをリターンする。
これはポイント位置のテキストプロパティjustification
の値、そのようなテキストプロパティが存在しなければ変数default-justification
の値をリターンする。しかし“位置揃えなし”なら、none
ではなくnil
をリターンする。
この変数が非nil
ならピリオドの後の単一のスペースをセンテンスの終わりとみなさず、フィル関数はそのような箇所でのラインブレークを行わない。
この変数が非nil
なら、ピリオドなしでセンテンスは終了できる。これはたとえばピリオドなしの2連スペースでセンテンスが終わるタイ語などに使用される。
この変数が非nil
なら、それは後にスペースをともなうことなくセンテンスを終了させ得る文字列であること。
この変数が非nil
なら異種(たとえば英語のCJK)の2つの単語は一方が行末にあり、もう一方が次行の先頭にある場合にはフィルでの結合時にスペースで分割される。
この変数はパラグラフのフィルをオーバーライドする手段を提供する。この値が非nil
なら、fill-paragraph
はその処理を行うためにその関数を呼び出す。その関数が非nil
値をリターンすると、fill-paragraph
は処理が終了したとみなして即座にその値をリターンする。
この機能の通常の用途はプログラミング言語のモードにおいてコメントをフィルすることである。通常の方法でその関数がパラグラフをフィルする必要があるなら、以下のようにそれを行うことができる:
(let ((fill-paragraph-function nil)) (fill-paragraph arg))
この変数はfill-region
やfill-paragraph
のようなフィル関数が次のパラグラフへ前方に移動する方法をオーバーライドするための手段を提供する。値は移動するパラグラフの数nを唯一の引数として呼び出される関数であり、nと実際に移動したパラグラフ数の差をリターンすること。この変数のデフォルト値はforward-paragraph
。Paragraphs in The GNU Emacs Manualを参照のこと。
この変数が非nil
なら、フィル関数はテキストプロパティhard
をもつ改行を削除しない。これらのhard改行、パラグラフのセパレーターとして機能する。Hard and Soft Newlines in The GNU Emacs
Manualを参照のこと。