Next: 割り合いによる垂直スクロール, Previous: ウィンドウの開始位置と終了位置, Up: ウィンドウ [Contents][Index]
テキスト的なスクロール(textual
scrolling)とは、ウィンドウ内のテキストを上や下に移動することを意味します。これはそのウィンドウのdisplay-startを変更することにより機能します。これはポイントを画面上に維持するためにwindow-pointの値も変更するかもしれません(ウィンドウとポイントを参照)。
テキスト的なスクロールの基本的な関数は、(前方にスクロールする) scroll-up、および(後方にスクロールする)
scroll-downです。これらの関数の名前の“up”と“down”は、バッファーテキストのそのウィンドウにたいする相対的な移動方向を示しています。そのテキストが長いロール紙に記述されていて、スクロールコマンドはその上を上下に移動すると想像してみてください。つまりバッファーの中央に注目している場合には、繰り返してscroll-downを呼び出すと最終的にはバッファーの先頭を目にすることになるでしょう。
これは残念なことに時折混乱を招きます。なぜならある人はこれを逆の慣習にもとづいて考える傾向があるからです。彼らはテキストがその場所に留まりウィンドウが移動して、“down”コマンドによりバッファー終端に移動するだろうと想像します。この慣習はそのようなコマンドが現代風のキーボード上のPageDownという名前のキーにバインドされているという事実と一致しています。
選択されたウィンドウ内で表示されているバッファーがカレントバッファーでなければ、(scroll-other-window以外の)テキスト的スクロール関数の結果は予測できません。カレントバッファーを参照してください。
(たとえば大きなイメージがある等で)ウィンドウにウィンドウの高さより高い行が含まれる場合には、スクロール関数は部分的に可視な行をスクロールするためにそのウィンドウの垂直スクロール位置を調整します。Lisp呼び出し側は変数auto-window-vscrollをnilにバインドすることにより、この機能を無効にできます(割り合いによる垂直スクロールを参照)。
この関数は選択されたウィンドウ内でcount行前方にスクロールする。
countが負ならかわりに後方へスクロールする。countがnil
(または省略)ならスクロールされる距離は、そのウィンドウのボディーの高さより小さいnext-screen-context-linesとなる。
この関数は選択されたウィンドウがそれ以上スクロールできなければエラーをシグナルして、それ以外はnilをリターンする。
この関数は選択されたウィンドウ内でcount行後方にスクロールする。
countが負ならかわりに前方へスクロールする。それ以外の点ではこれはscroll-upと同様に振る舞う。
これはscroll-upと同様に振る舞うが選択されたウィンドウがそれ以上スクロールできず、かつ変数scroll-error-top-bottomの値がtなら、かわりにそのバッファーの終端への移動を試みる。ポイントがすでに終端にあればエラーをシグナルする。
これはscroll-downと同様に振る舞うが選択されたウィンドウがそれ以上スクロールできず、かつ変数scroll-error-top-bottomの値がtなら、かわりにそのバッファーの先頭への移動を試みる。ポイントがすでに先頭にあればエラーをシグナルする。
この関数は他のウィンドウ内のテキストを上方にcount行スクロールする。countが負かnilならscroll-upのように処理される。
変数other-window-scroll-bufferにバッファーをセットすることにより、どのバッファーをスクロールするかを指定できる。そのバッファーが表示されていなければ、scroll-other-windowはそれを何らかのウィンドウにそれを表示する。
選択されたウィンドウがミニバッファーのとき、次ウィンドウは通常はそのウィンドウの直上最左のウィンドウである。変数minibuffer-scroll-windowをセットすることにより、スクロールする別のウィンドウを指定できる。この変数はミニバッファー以外のウィンドウが選択されているときは効果がない。これが非nil、かつミニバッファーが選択されているときにはother-window-scroll-bufferより優先される。Definition of minibuffer-scroll-windowを参照のこと。
この関数は他のウィンドウ内のテキストを下方にcount行スクロールする。countが負かnilならscroll-downのように処理される。それ以外の点においてはscroll-other-windowと同様の方法で振る舞う。
この変数が非nilなら、それはscroll-other-windowがどのバッファーのウィンドウをスクロールするかを指定する。
このオプションはスクロールマージン(ポイントとウィンドウの上端/下端との最小行数)のサイズを指定する。ポイントがウィンドウの上端/下端からその行数になったとき、(可能なら)再表示はポイントをそのマージン外のウィンドウ中央付近に移動するためにテキストを自動的にスクロールする。
この変数はscroll-marginの実効値をカレントウィンドウの行高さの割合に制限する。たとえばカレントウィンドウが20行でmaximum-scroll-marginが0.1なら、scroll-marginがどれほど大きくてもスクロールマージンが2より大きくなることはない。
maximum-scroll-margin自体は最大値として0.5という値をもち、これはウィンドウの中央行(ウィンドウが偶数行なら中央の2行)までカーソルを維持するためにマージンを大きくセットすることを可能にする。大きな値(または0.0から0.5までの浮動小数点数以外の値)をセットするとデフォルト値0.25がかわりに使用される。
この変数はポイントがスクリーン外(またはスクロールマージン内)に移動したときに自動的にスクロールを行う方法を指定する。値が正の整数nなら再表示はそれが正しい表示範囲内にポイントを戻すなら、いずれかの方向にn行以下のテキストをスクロールする。この振る舞いは保守的なスクロール(conservative
scrolling)と呼ばれる。それ以外ならスクロールはscroll-up-aggressivelyやscroll-down-aggressivelyのような他の変数の制御の下に通常の方法で発生する。
デフォルトの値は0でこれは保守的スクロールが発生し得ないことを意味する。
この変数の値はnil、または0から1までの小数点数fであること。小数点数ならスクリーン上でポイントが置かれたとき下にスクロールする場所を指定する。より正確にはポイントがウィンドウstartより上という理由でウィンドウが下にスクロールされるときには、新たなstart位置がウィンドウ上端からウィンドウ高さのfの箇所にポイントが置かれるように選択される。より大きなfなら、よりaggressive(積極的)にスクロールする。
その効果はポイントを中央に配置することであり、値nilは.5と等価である。どのような方法によりセットされたときでも、この変数は自動的にバッファーローカルになる。
scroll-up-aggressivelyの場合と同様。値fはポイントがウィンドウ下端からどれほどの位置に置かれるべきかを指定する。つまり、scroll-up-aggressivelyと同様に大きな値ではよりaggressive(積極的)になる。
この変数はscroll-conservativelyの古い変種である。違いは値がnならn以下の値ではなく、正確にnだけのスクロールを許容することである。この機能はscroll-marginとは共に機能しない。デフォルトは0。
このオプションがtなら、スクロールによりポイントがウィンドウ外に移動したとき、Emacsは常にポイントがポイントの上下端ではなくカーソルがそのウィンドウ内の元の垂直位置に保たれるようポイントの調整を試みる。
値が非nilかつ非tなら、たとえスクロールコマンドによりポイントがウィンドウ外に移動していなくとも、Emacsはカーソルが同じ垂直位置に保たれるようにポイントを調整する。
このオプションはシンボルプロパティscroll-commandが非nilであるような、すべてのスクロールコマンドに影響する。
この変数の値は全画面スクロールされたときに継続して残される行数を指定する。たとえば引数がnilのscroll-upはウィンドウ上端ではなく下端に残される行数でスクロールする。デフォルト値は2。
このオプションがnil(デフォルト)なら、それ以上のスクロールが不可能な際にscroll-up-commandとscroll-down-commandは単にエラーをシグナルする。
値がtなら、これらのコマンドはかわりにポイントをバッファーの先頭か終端(スクロール方向に依存する)に移動する。ポイントがすでにその位置にある場合のみエラーをシグナルする。
この関数は選択されたウィンドウ内の指定された垂直位置にポイントを表示するようにウィンドウ内のテキストをスクロールする。これはテキストに応じたポイント移動を行わない。
countが非負の数なら、そのウィンドウ上端からcount行下にポイントを含む行を配置する。countが負ならウィンドウ下端から上に数えるので、-1はそのウィンドウ内で最後の利用可能な行となる。
countがnil
(または非nilのリスト)なら、recenterはポイントを含む行をウィンドウの中央に配置する。countとredisplayが非nilなら、この関数はrecenter-redisplayの値に応じてフレームを再描画するかもしれない。recenter-redisplayが非nilの場合の効果を打ち消すために、したがって2つ目の引数の省略を使用できる。インタラクティブな呼び出しではredisplayに非‘nil’が渡される。
recenterがインタラクティブに呼び出されたときはrawプレフィックス引数がcountとなる。したがってプレフィックスとしてC-uをタイプするとcountに非nil、C-u
4ではcountに4がセットされte、後者ではカレント行を上端から4行目にセットする。
引数0ではrecenterはカレント行をウィンドウ上端に配置する。コマンドrecenter-top-bottomはこれを達成するためにより簡便な方法を提供する。
この関数はrecenterと同様だが、選択されたウィンドウがウィンドウグループ(Window Groupを参照)の一部の際には、recenter-window-groupがグループ全体をスクロールする点が異なる。この条件はバッファーローカル変数recenter-window-group-functionが関数にセットされている際に保持される。この場合にはrecenter-window-groupはその関数を引数countで呼び出して結果をリターンする。引数countはrecenterの場合と同様の意味をもつが、ウィンドウグループ全体に作用する。
この変数が非nilなら引数redisplayをnil、引数countを非nilでrecenterを呼び出すことによりフレームを再描画する。デフォルト値はttyで、これはフレームがttyフレームのときだけフレームを再描画することを意味する。
デフォルトではC-lにバインドされているこのコマンドは、recenterと同様に動作するが引数なしで呼び出されたときの動作が異なる。この場合には連続して呼び出すことにより変数recenter-positionsで定義されるサイクル順に応じてポイントを配置する。
これはrecenter-top-bottomを引数なしで呼び出したときの挙動を制御する。デフォルト値は(middle top
bottom)で、これは引数なしでrecenter-top-bottomを連続して呼び出すとポイントをウィンドウの中央、上端、下端と巡回して配置することを意味する。
Next: 割り合いによる垂直スクロール, Previous: ウィンドウの開始位置と終了位置, Up: ウィンドウ [Contents][Index]