Next: , Previous: , Up: テキストのフィル   [Contents][Index]


26.6.2 明示的なフィルコマンド

M-q

カレントパラグラフをフィルします(fill-paragraph)。

C-x f

フィルの列幅をセットします(set-fill-column)。

M-x fill-region

リージョンの各パラグラフをフィルします(fill-region)。

M-x fill-region-as-paragraph

リージョンを1つのパラグラフとしてフィルします。

M-x center-line

行を中央に揃えます。

コマンドM-q (fill-paragraph)は、カレントのパラグラフをフィルします。このコマンドは特定の最大列幅に適合するような方法で、パラグラフの改行を再配分して、パラグラフの余分なスペースやタブ文字を削除します。Auto Fillモードのように、このコマンドや他のフィルコマンドは通常はスペース文字で行ブレークしますが、CJK文字にたいしてはこれらのコマンドはほとんどすべての2文字間で行を分割でき、禁則処理にしたがうこともできます。Auto Fillモードを参照してください。

M-qは通常、ポイントがあるパラグラフに作用しますが、ポイントがパラグラフの間にあるときは、ポイントの後ろのパラグラフに作用します。リージョンがアクティブの場合、かわりにリージョンのテキストに作用します。M-x fill-regionを呼び出して、リージョンのテキストを明確にフィルすることもできます。

M-qおよびfill-regionは、パラグラフの境界を探すために、通常のEmacsの条件式を使用します。より細かく制御するには、ポイントとマークの間にあるすべてを1つのパラグラフとして再フィルする、M-x fill-region-as-paragraphを使用することができます。このコマンドはリージョンの空行を削除するので、分割されたテキストブロックは、1つのブロックに結合されます。

M-qに数引数を指定した場合、これはテキストのフィルと同時に割付(justify)も指示します。これは行の右端が正確にフィル列になるように、余分なスペースが挿入されることを意味します。余分なスペースを削除するには、引数を指定せずにM-qを使用します(fill-regionと同じ)。

フィルのための行の最大幅は、バッファーローカルな変数fill-columnにより指定されます。デフォルト値は70です(ローカル変数を参照してください)。カレントバッファーのfill-columnをセットする一番簡単な方法は、コマンドC-x f (set-fill-column)を使用する方法です。数引数を指定すると、それを新しいフィル列として使用します。C-uだけを指定すると、このコマンドは現在のポイントの水平位置をfill-columnにセットします。fill-columnはその性質上、列単位で数えられることに注意してください。その列の実際の位置は、グラフィカルなディスプレイでは使用されているフォントに依存します。特に可変幅フォントを使用することによって、行が異なればfill-columnがディスプレイ上で異なる水平位置を占めることが起こり得ます。

コマンドM-x center-lineは、現在のフィル列でカレント行を中央に揃えます。数引数nを指定すると、nを中央に揃えた後、ポイントを先に移動します。このバインディングはTextモードのためのもので、利用可能なのはTextモードとそれに関連するモードだけです(Textモードを参照してください)。

デフォルトでは、Emacsは2つのスペースまたは改行が後にあるピリオドを、センテンスの終わりと判断します。後に1つのスペースしかないピリオドは、センテンスの終わりではなく、省略形を示します。それに合わせて、フィルコマンドも後に1つのスペースしかないピリオドでは、行を分割しません。変数sentence-end-double-spacenilにセットした場合、フィルコマンドは後に1つのスペースしかないピリオドでも行を分割するようになり、各ピリオドの後に1つのスペースを配すようになります。他の効果とこの方法の欠点については、センテンスを参照してください。

変数colon-double-spaceが非nilの場合、フィルコマンドはコロンの後に2つのスペースを配します。

行分割を許さない場所の条件を追加で指定するには、アブノーマルフック変数fill-nobreak-predicateをカスタマイズします(フックを参照してください)。このフックの各関数はEmacsが行を分割すべきと判断する位置で引数なしで呼び出されます。関数が非nil値を返した場合には、Emacsはその位置で行を分割しません。このフックに指定できる関数にはfill-single-word-nobreak-p (センテンスの最初の単語の後ろ、および最後の単語の前では分割しません)、fill-single-char-nobreak-p (空白文字が前置された1文字の単語の後ろでは分割しません)、fill-french-nobreak-p (‘(’の後ろ、および‘)’、‘:’、‘?’の前では分割しません)、fill-polish-nobreak-p (非空白文字が前置された1文字の単語の後ろでも分割しません)が含まれます。

EmacsはDisplay fill column indicatorモード(display-fill-column-indicatorを参照)を使用することによってfill-columnの位置にインジケーターを表示できます。