Next: Recentering, Up: Display [Contents][Index]
ウィンドウがバッファーのすべてのテキストを表示するには小さい場合、その一部だけが表示されます。スクロールコマンドは、バッファーで表示される部分を変更します。
“前方(forward)”または“上(up)”へのスクロールは、ウィンドウに表示される部分を先に進めます。これはウィンドウに表示されるバッファーのテキストを、上に移動させるのと同じです。“後方(backward)”または“下(down)”へのスクロールは、ウィンドウに表示される部分を前に戻します。これはウィンドウに表示されるバッファーのテキストを下に移動させます。
Emacsでの“up”と“down”は、ウィンドウでテキストが移動する方向に基づいており、テキストにたいしてウィンドウが移動する方向ではありません。この用語は現在の“scrolling up”や“scrolling down”が広まる前に、Emacsで採用されました。そのためPageDownは、Emacs的には“上(up)”にスクロールするという、奇妙な結果となりました。
ウィンドウに表示されているバッファー部分には、常にポイントが含まれています。もしウィンドウの下端か上端を越えてポイントを移動させると、ポイントを画面に表示させるために自動的にスクロールが発生します(Auto Scrollingを参照してください)。以下のコマンドで明示的にスクロールができます:
ウィンドウのほぼ全画面分、前方にスクロールします(scroll-up-command
)。
後方にスクロールします(scroll-down-command
)。
C-v
(scroll-up-command
)は、ウィンドウ全体の高さに近い量、前方にスクロールします。これにより下端の2行が上端になるようスクロールして、それに続く表示されていなかった行を表示します。ポイントが上端より上になってしまう場合、ウィンドウの新たな上端の行に移動します。The
next(またはPageDown)は、C-vと同じです。
M-v
(scroll-down-command
)は、同様の方法で後方にスクロールします。prior(またはPageUp)は、M-vと同じです。
スクロールコマンドでオーバーラップして表示される行数は、変数next-screen-context-lines
で制御され、デフォルトは2です。数引数nを与えたときは、n行スクロールします。Emacsはポイントを変更しないよう試みるので、テキストとポイントは一緒に上または下に動きます。C-vに負の引数を与えると、M-vのように反対方向へスクロールします。
デフォルトでは、ウィンドウがバッファーの先頭または最後に到達していて、これ以上スクロールできない場合、これらのコマンドは(beep音をならしたり画面をフラッシュして)エラーをシグナルします。変数scroll-error-top-bottom
をt
に変更すると、コマンドは可能な限り、つまりバッファーの先頭の文字または最後の文字にポイントを移動します。ポイントがすでにそこにあるときは、エラーをシグナルします。
スクロールしたとき、ポイントが同じスクリーン位置に留まることを好むユーザーもいます。そうすれば同じスクリーンにスクロールして戻ったとき、ポイントが元の位置にあると便利だからです。この動作は変数scroll-preserve-screen-position
を通じて利用可能です。変数の値がt
のとき、スクロールコマンドによりポイントがウィンドウの外にでるような場合、Emacsはポイントを先頭行または最終行に移動させるのではなく、同じスクリーン位置にポイントを調整して、カーソルを維持します。その他の非nil
値の場合、Emacsはスクロールコマンドによりポイントがウィンドウに残っている場合にも、この方法でポイントを調整します。この変数はこのセクションで説明するすべてのスクロールコマンド、同様にマウスホイールによるスクロール(Mouse Commandsを参照してください)に影響を与えます。一般的にいうと、この変数はscroll-command
プロパティが非nil
のコマンドに影響を及ぼします。Property
Lists in The Emacs Lisp Reference Manualを参照してください。
コマンドM-x scroll-upおよびM-x
scroll-downは、scroll-up-command
およびscroll-down-command
と同様に動作しますが、scroll-error-top-bottom
を考慮しません。これらのコマンドは、Emacs
24以前ではスクロールアップおよびスクロールダウンのためのデフォルトでした。コマンドM-x
scroll-up-lineおよびM-x
scroll-down-lineは、現在のウィンドウを1行スクロールさせます。もしこれらのコマンドを使う場合は、それにキーバインドを割り当てたくなるでしょう(Init Rebindingを参照してください)。