バッファー内のテキストの行 — 論理行(logical line) — がウィンドウに収まらないほど長い場合、Emacsがそれを2行以上のスクリーン行(screen lines)で表示するときがあります(visual lines: とも呼ぶ)。これは行の折り返し(line wrapping)または継続(continuation)と呼ばれ、論理行は継続された行(continued line)と呼ばれます。グラフィカルなディスプレイでは、Emacsは行の折り返しをウィンドウの左右のフリンジ(fringes、縁)の小さな曲矢印で示します。テキスト端末では、Emacsは右の余白に‘\’を表示して行の折り返しを示します。
ほとんどのコマンドは、スクリーン行ではなく論理行にたいして作用します。たとえばC-kは論理行をkillします。前に説明したように、C-n
(next-line
)とC-p
(previous-line
)は特別な例外です。これらはスクリーン行にたいしてポイントを上下に移動させます(ポイント位置の変更を参照してください)。
Emacsはオプションで長い論理行を継続するかわりに、切り詰める(truncate)ことができます。これは論理行が1つのスクリーン行を占めることを意味します。もし論理行がウィンドウ幅より長い場合、行の残りは表示されません。グラフィカルなディスプレイでは切り詰められた行は、右フリンジの小さな直矢印で示されます。テキスト端末では右余白の‘$’で示されます。行の切り詰めを参照してください。
デフォルトでは継続行はウィンドウの右端で折り返されます。折り返しが単語の途中で発生すると、継続された行は読むのが難しくなります。普通の解決策は、行が長くなりすぎる前に改行を挿入することです。もしお好みなら、行が長くなりすぎたときにEmacsが自動的に改行を挿入するように、Auto Fillモードを使うことができます。テキストのフィルを参照してください。
通常だと継続行の最初の文字はそれぞれ、表示されているスクリーン行の先頭に配置されます。マイナーモードvisual-wrap-prefix-mode
、その相方となるグローバル版のglobal-visual-wrap-prefix-mode
(see マイナーモード)が表示に際して、各行の周囲のコンテキストにたいして自動的に計算されたフィルプレフィックスを用いて継続行をアレンジします。これらのプレフィックスはディスプレイ上だけの機能であり、バッファーのテキストは一切変更しません。
多くの長い論理行を含むファイルを編集する必要があり、それらすべてを改行で分割するのが実用的でない場合があります。そのようなケースでは単語折り返し(word wrapping)が有効なVisual Lineモードを使うことができます。これは長い行を正確にウィンドウの右端で折り返すのではなく、ウィンドウの右端に一番近い単語境界(スペースやタブなど)で折り返します。Visual Lineモードでは、C-a、C-n、C-kなどの編集コマンドも、論理行ではなくスクリーン行を処理するように再定義されます。Visual Lineモードを参照してください。