Next: , Previous: , Up: ディスプレーの制御   [Contents][Index]


14.22 Visual Lineモード

このモードでは、通常の行継続の代わりに、単語での折り返しが使われます。通常の行継続のように、長い論理行は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をカスタマイズしてください。

lEmacsはデフォルトでは文字の後の空白でのみ行ブレークします。これは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-setcategory-set-mnemonicsを使用してカテゴリーを閲覧したり、あるいはポイント上でC-u C-x =とタイプして結果の“category”セクションを調べることができます。コマンドmodify-category-entryを使用して、文字にカテゴリーを追加できます。