水平スクロール(Horizontal
scrolling)は、ウィンドウの行を右方向に移動させます。そのため左端の近くのテキストは表示されなくなります。ウィンドウのテキストが水平スクロールされると、テキスト行は折り返されるのではなく、切り詰め(truncated)られます。ウィンドウが切り詰められた行を表示しているとき、ポイントがスクリーンの左端か右端を越えて移動すると、Emacsは自動的に水平スクロールを行います。デフォルトではそのウィンドウ内のすべての行は一緒に水平スクロールされますが、変数auto-hscroll-mode
に特別な値current-line
をセットした場合は、カーソルを表示する行だけがスクロールされます。自動的な水平スクロールを完全に無効にするには、変数auto-hscroll-mode
にnil
をセットしてください。また自動的な水平スクロールがオフになっている場合、ポイントがスクリーンの端を越えると、それを知らせるためにカーソルが表示されなくなることに注意してください(テキスト端末の場合カーソルは端に残されます)。
変数hscroll-margin
は、自動的なスクロールが起こる前に、ポイントがウィンドウの左端または右端に、どれだけ近づけるかを制御します。変数の値は列数で指定します。たとえば変数の値が5のときは、端から5列目にポイントが移動すると、水平スクロールが発生します。
変数hscroll-step
はmポイントが端に近づきすぎたときに、何列スクロールするかを決定します。デフォルト値の0は、ポイントがウィンドウの中央になるようにスクロールされることを意味します。正の整数はスクロールされる列数を指定します。浮動小数点数(0から1の値であること)は、スクロールされる量を、ウィンドウの幅にたいする割合で指定します。
以下のコマンドで明示的に水平スクロールすることもできます:
現在のウィンドウのテキストを左にスクロールします(scroll-left
)。
右にスクロールします(scroll-right
)。
C-x <
(scroll-left
)は選択された、ウィンドウをウィンドウ幅から2列少ない列数、左にスクロール(いいかえればウィンドウのテキストは左に移動)します。数引数nを指定すると、n列スクロールします。
テキストが左にスクロールされて、ポイントがウィンドウの左端を越えると、ポイントが表示されているテキストに戻るまで、カーソルはフリーズします。これはauto-hscroll-mode
の設定とは独立しています(これはテキストを左にスクロールするときのウィンドウの右端での振る舞いだけに影響します)。
C-x >
(scroll-right
)は、同様に右にスクロールします。ウィンドウが通常の表示(行の先頭がウィンドウの左端に表示されている状態)のときは、それ以上スクロールできないので何も起こりません。これはC-x >の引数を正確に計算する必要がないことを意味します。充分に大きな引数を与えれば、通常の表示が復元されます。
これらのコマンドでウィンドウを水平方向にスクロールすると、自動水平スクロールの下限値がセットされます。自動スクロールはウィンドウのスクロールを続けますが、前にscroll-left
にセットされた値を越えて右にスクロールできなくなります。auto-hscroll-mode
がcurrent-line
にセットされているときは、カーソルを表示する行以外の行は、最小限度だけスクロールされるでしょう。
グラフィカルなディスプレイでオプションhorizontal-scroll-bar-mode
をオンにしていれば、水平スクロールバーを使ったウィンドウの水平スクロールも可能です。スクロールバーを参照してください。