このモードでは、通常の行継続の代わりに、単語での折り返し (継続行を参照)が使われます。通常の行継続のように、長い論理行は2行以上のスクリーン行に分割されます。しかしEmacsはウィンドウの右端(RTL言語:Right-To-Leftlanguageでは左端)の近くの、単語の境界で折り返すよう試みます。これは単語の途中で折り返さないことにより、可読性を高めるためです。
単語での折り返しは、オプションのマイナーモードである、Visual Lineモードで有効になります。現在のバッファーでVisual Lineモードの有効と無効を切り替えるには、M-x visual-line-modeとタイプします。メニューバーからVisual Lineモードを有効にすることもできます(Optionsメニューから、サブメニュー‘Line Wrapping in this Buffer’の、メニューアイテム‘Word Wrap (Visual Line Mode)’を選択します)。Visual Lineモードが有効なときは、モードラインのモード表示に‘wrap’という文字が表示されます。コマンドM-x global-visual-line-modeは、全バッファーのVisual Lineモードを切り替えます。
単語折り返し(前セクションで説明)と行切り詰めは排他なので、visual-line-mode
をオンにすると行切り詰めが無効になります。
Visual Lineモードでは、いくつかのコマンドは論理行ではなくスクリーン行に作用します。C-a
(beginning-of-visual-line
)はスクリーン行の先頭に移動し、C-e
(end-of-visual-line
)はスクリーン行の最後に移動、C-k
(kill-visual-line
)はテキストをスクリーン行の最後までkillします。
論理行単位で移動するには、コマンドM-x next-logical-lineまたはM-x previous-logical-lineを使います。これらのコマンドはVisual Lineモードが有効であるかにかかわらず、次または前の論理行に移動します。これらのコマンドを頻繁に使う場合は、キーを割り当てると便利でしょう。initファイル内でのキーのリバインドを参照してください。
デフォルトでは、単語の折り返し表示はフリンジに表示されません。Visual
Lineモードは、長い論理行を含むファイルを編集するときに使われる場合があり、折り返し行すべてにフリンジの表示をすると見にくくなるためです。これを変更するには、変数visual-line-fringe-indicators
をカスタマイズしてください。
デフォルトではEmacsはSPCやTABのような空白文字の後でのみ行ブレークを行い、EN
QUADのような空白文字の後での行ブレークは行いません。Emacsはカレントモードでの単語折り返しを切り替えるword-wrap-whitespace-mode
と呼ばれるマイナーモードを提供しています。このモードはどの文字で行の折り返しを行うかをユーザーオプションword-wrap-whitespace-characters
にもとづいてセットアップします。
CJKとLatinが混ざったテキストでは、空白文字の後でのみブレークすると正しくない結果を生成するかもしれません(CJKは単語区切りに空白文字を使用しないため)。CJK文字にたいしてより良いサポートを提供するために任意の‘|’カテゴリー(Categories in the Emacs Lisp Reference
Manualを参照)の文字の後でEmacsが行ブレークできるように、オプションword-wrap-by-category
をカスタマイズできます。この変数がCustomizeを使用してセットされていると、Emacsは自動的にkinsoku.elをロードします。kinsoku.elのロード時には、Emacsは行ブレークする際に禁足規則にしたがいます。これは‘>’カテゴリーの文字(たとえばU+FF0C
FULLWIDTH COMMA)が行頭、‘<’カテゴリーの文字(たとえばU+300A LEFT DOUBLE ANGLE
BRACKET)が行末に出現しないことを意味します。コマンドchar-category-set
かcategory-set-mnemonics
を使用してカテゴリーを閲覧したり、あるいはポイント上でC-u
C-x
=とタイプして結果の“category”セクションを調べることができます。コマンドmodify-category-entry
を使用して、文字にカテゴリーを追加できます。