垂直スクロールとは、ウィンドウ内のテキストを上向きや下向きに動かすことです。
ウィンドウの表示開始位置の値を変更することで動作します。
ポイントがスクリーン内に留まるようにwindow-point
の
値を変更することもあります。
コマンドscroll-up
やscroll-down
の
方向を示す『up』(上向き)と『down』(下向き)は、
ウィンドウを見ているときのバッファ内のテキストの移動方向を表します。
テキストは縦に長い紙に(横書きで)書いてあり、
スクロールコマンドはその紙を上下に動かすと想像してください。
したがって、バッファの中ほどのテキストを見ているときに
scroll-down
を繰り返し呼び出すと、
最終的にはバッファの先頭を見ることになります。
逆の慣習の名前を使うべきだと主張する人々もいます。 彼らは、固定されたテキストのうえをウィンドウが動いていると想像するのです。 すると、『下向き』のコマンドはバッファの末尾に移動することになります。 この見方は、ウィンドウとバッファ内のテキストとの実際の関係に よく適合しているのですが、ユーザーはそのように考えないようです。 端末上ではウィンドウは動きませんし、スクロールコマンドは 明らかにテキストをスクリーン上で上下に動かしています。 ユーザーの視点に合う名称を選んだのです。
カレントバッファと選択されているウィンドウに
表示されているバッファとが異なる場合には、
(scroll-other-window
以外の)スクロール関数の結果は予測できません。
See Current Buffer。
この関数は、選択されているウィンドウのテキストを 上向きにcount行だけスクロールする。 countが負であると、実際のスクロール方向は下向きである。
countが
nil
(あるいは省略)であると、 スクロール量は、ウィンドウの(モード行を数えない)利用可能な高さよりnext-screen-context-lines
だけ少なくなる。
scroll-up
はnil
を返す。
この関数は、選択されているウィンドウのテキストを 下向きにcount行だけスクロールする。 countが負であると、実際のスクロール方向は上向きである。
countが
nil
(あるいは省略)であると、 スクロール量は、ウィンドウの(モード行を数えない)利用可能な高さよりnext-screen-context-lines
だけ少なくなる。
scroll-down
はnil
を返す。
この関数は、別のウィンドウのテキストを上向きに count行だけスクロールする。 countの値が負であったり
nil
であると、scroll-up
と同様に扱う。変数
other-window-scroll-buffer
で、スクロールするバッファを指定できる。 選択されているウィンドウがミニバッファ用であるときには、 つぎのウィンドウは、通常、もっとも左上隅にあるウィンドウである。 変数minibuffer-scroll-window
で、 スクロールする別のウィンドウを指定できる。 別のウィンドウが選択されている場合には、この変数の効果はない。 see Minibuffer Misc。ミニバッファが活性であると、 右下隅のウィンドウが選択されているウィンドウであるときには、 つぎのウィンドウはミニバッファ用ウィンドウである。 この場合、
scroll-other-window
はミニバッファをスクロールしようとする。 ミニバッファにたった1行しか入っていなければスクロールできず、 エコー領域に『Beginning of buffer』と短時間表示されたあとで、 ミニバッファの行が再度現れる。
このオプションは、スクロール時の余白の大きさ、 つまり、ポイントとウィンドウの上端や下端とのあいだにある最低行数を指定する。 ウィンドウの上端や下端からこの行数以内にポイントが移動するたびに、 (可能ならば)ウィンドウを自動的にスクロールして、 ポイントを余白の外側でウィンドウの中央近くに移動する。
この変数は、ポイントがスクリーンからはみ出したとき (あるいはスクロール時の余白に入ったとき)に どのように自動的にスクロールするかを制御する。 値が0であると、ウィンドウの縦方向でポイントが中央にくるように テキストをスクロールして再表示する。 値が正の整数nであると、 ウィンドウをどちらかの方向に最大n行だけスクロールすると ポイントが見えるようになるときには、そのようにスクロールして再表示する。 さもなければ、ポイントが中央にくるようにする。 デフォルト値は0である。
この変数は、
scroll-conservatively
の古い変種である。 違いは、値がnであると正確にn行だけのスクロールを許すことである。 この機能はscroll-margin
では働かない。 デフォルト値は0である。
このオプションが
nil
以外であると、 スクロール関数は、可能ならばカーソルの垂直方向の位置を 変えないようにポイントを移動する。
この変数の値は、1画面分スクロールしたときに連続して残っている行数である。 たとえば、引数
nil
のscroll-up
は、 ウィンドウの下端にあるこの行数だけの行が上端にくるようにスクロールする。 デフォルト値は2
である。
この関数は、選択されているウィンドウをスクロールして ポイント位置にあるテキストがウィンドウ内の垂直方向の指定位置にくるようにする。
countが非負の数であると、ポイント位置にある行を ウィンドウの上端からcount行下にくるようにする。 countが負の数であると、ウィンドウの下端から数え、 −1はウィンドウの使用可能な最後の行を表す。 countが
nil
以外のリストであると、 ウィンドウの中央の行を表す。countが
nil
であると、recenter
は、 ポイント位置にある行がウィンドウの中央にくるようにして、 選択されているフレーム全体をクリアして再表示する。
recenter
が対話的に呼び出されると、countは生の前置引数である。 したがって、前置引数としてC-uと打つと countはnil
以外のリストになり、 C-u 4と打つとcountは4になって上端から4行目に現在行がくる。引数が0であると、
recenter
はウィンドウの上端に現在行がくるようにする。 この動作は、このための専用のキーバインディングをする人がいるくらい便利である。 たとえばつぎのようにする。(defun line-to-top-of-window () "Scroll current line to top of window. Replaces three keystroke sequence C-u 0 C-l." (interactive) (recenter 0)) (global-set-key [kp-multiply] 'line-to-top-of-window)