GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Fill-Commands.html ・ emacs-doc.conao3.com

27.6.2 明示的な塗りつぶしコマンド

M-q

現在の段落 (fill-paragraph) を埋める。

C-x f

塗りつぶし列 (set-fill-column) を設定します。

M-x fill-region

領域内の各段落を埋めてください。

M-x fill-region-as-paragraph

その領域を一つの段落として埋めてください。

M-x unfill-paragraph

現在の段落を埋める。

M-x center-line

線を中央に配置する。

コマンド M-q (fill-paragraph) は、現在の段落を埋めます。段落内の改行を再配分し、段落内に存在する余分なスペースやタブ文字を削除することで、各行が一定の最大幅に収まるようにします。オートフィルモードと同様に、このコマンドやその他の埋めコマンドは通常、スペース文字で改行しますが、CJK文字の場合、これらのコマンドはほぼ任意の2文字の間で改行することができ、また禁則ルールに従うこともあります。オートフィルモードを参照してください。

通常、M-qはpointがある段落に作用しますが、pointが段落間にある場合は、pointの後の段落に作用します。領域がアクティブな場合は、代わりにその領域内のテキストに作用します。また、M-x fill-regionを呼び出して、その領域内のテキストを明示的に塗りつぶすこともできます。

M-q と fill-region は、段落境界を検出するための通常の Emacs の基準を用います(Paragraphs を参照)。より詳細な制御を行うには、M-x fill-region-as-paragraph を使用できます。これにより、ポイントとマークの間にあるすべてが単一の段落として再構成されます。このコマンドの動作は変数 fill-region-as-paragraph-function によって制御されます。デフォルトでは、リージョン内の空行が削除されるため、個別のテキストブロックが一つのブロックにまとめられます。

M-q に数値引数を指定すると、テキストの塗りつぶしに加えて右寄せも行われます。つまり、右マージンが塗りつぶし列と正確に揃うように、余分なスペースが挿入されます。この余分なスペースを取り除くには、引数なしで M-q を使用してください。(fill-region についても同様です。)

塗りつぶしの最大行幅は、バッファローカル変数 fill-column で指定されます。デフォルト値(ローカル変数 を参照)は 70 です。現在のバッファで fill-column を設定する最も簡単な方法は、コマンド C-x f (set-fill-column) を使用することです。数値引数を指定すると、それを新しい塗りつぶし列として使用します。引数に C-u のみを指定すると、fill-column に point の現在の水平位置が設定されます。なお、fill-column はその性質上、列単位で計測されるため、グラフィカルディスプレイ上での実際の列の位置は、使用されているフォントによって異なります。特に、可変ピッチフォントを使用すると、fill-column はディスプレイ上の行によって異なる水平位置を占めることになります。

コマンド M-x unfill-paragraph は M-q の逆の操作です。現在の段落の各行を結合します。このコマンドを使用するのは、段落の最終行から開始し、すべての行が結合されるまで M-^ を繰り返し入力するようなものです(インデントコマンド を参照)。数値の接頭辞引数を指定すると、その数だけ段落に対して操作が適用されます。例えば、数値の接頭辞引数に 2 を指定すると、この段落のすべての行と次の段落のすべての行を結合しますが、2つの段落の区切りは維持されます。接頭辞引数がない場合は、M-q と同様にアクティブリージョンに対して作用します。

コマンド M-x center-line は、現在の行を現在のフィル列の中央に配置します。引数 n を指定すると、n 行を個別に中央に配置し、その後次の行へ移動します。このバインディングはテキストモードで設定されており、同モードおよび関連モードでのみ利用可能です(テキストモードを参照)。

デフォルトでは、Emacsはピリオドの後に2つのスペースまたは改行が続く場合を文末とみなします。ピリオドの後にスペースが1つだけ続く場合は、文末ではなく略語であることを示します。したがって、フィルコマンドはピリオドの後にスペースが1つだけ続く箇所で改行しません。変数 sentence-end-double-space を nil に設定すると、フィルコマンドはピリオドの後にスペースが1つだけ続く箇所で改行し、各ピリオドの後にスペースを1つだけ挿入するようになります。これによるその他の効果や考えられるデメリットについては、Sentences を参照してください。

変数 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 モードを使用して、fill-column の位置にインジケータを表示できます(display-fill-column-indicator を参照)。