Next: , Previous: , Up: フレームとグラフィカルなディスプレイ   [Contents][Index]


22.12 スクロールバー

グラフィカルなディスプレイでは、Emacsウィンドの横に垂直スクロールバー(vertical scroll bar)があります。スクロールバーのupボタンまたはdownボタンをmouse-1でクリックすると、ウィンドウを1行ずつスクロールします(しかし、これらのボタンがないようにスクロールバーをカスタマイズできるツールキットもある)。スクロールバー内部のボックスの上または下をmouse-1でクリックすると、M-vまたはC-vと同様に、ほぼウィンドウ全体の高さ分スクロールします(ポイント位置の変更を参照) (これも、いくつかのツールキットでは動作が異なるかもしれない)。スクロールバー内部のボックスをドラッグすると、連続してスクロールします。

EmacsがXウィンドウシステム上でXツールキットサポートなしでコンパイルされている場合、スクロールバーは違った振る舞いをします。スクロールバーの任意の箇所をmouse-1でクリックするとC-vのように前方にスクロールし、mouse-3でクリックするとM-vのように後方にスクロールします。スクロールバーでmouse-2をクリックすると、スクロールバー内部のボックスを上下にドラッグできます。

垂直スクロールバーの使用を切り替えるには、M-x scroll-bar-modeとタイプします。このコマンドは、まだ作成されていないフレームも含めて、すべてのフレームに適用されます。選択されたフレームの垂直スクロールバーだけ切り替えたい場合は、コマンドM-x toggle-scroll-barを使用してください。

起動時に垂直スクロールバーの使用を制御するには、変数scroll-bar-mode (カスタマイズを参照)をカスタマイズします。この変数の値は、right(ウィンドウの右にスクロールバーを配します)、left(ウィンドウの左にスクロールバーを配します)、nil(垂直スクロールバーを無効にします)のどれかです。EmacsがXウィンドウシステム上でGTK+サポートつきでコンパイルされている、またはMS-Windows、macOSの場合、デフォルトでは右にスクロールバーを配します。EmacsがXウィンドウシステム上でGTK+サポートなしでコンパイルされている場合、(古いXアプリケーションの慣例にしたがって)スクロールバーを左に配します。

Xリソース‘verticalScrollBars’を使って、スクロールバーの有効または無効にすることができます(Xリソースを参照してください)。スクロールバーの幅を制御するにはフレームパラメーターscroll-bar-widthを変更してください(Frame Parameters in The Emacs Lisp Reference Manualを参照してください)。

(GTK+またはMotifとともに)X上でEmacsを使っている場合、変数scroll-bar-adjust-thumb-portionをカスタマイズして、スクロールバーのオーバースクロール(overscrolling: たとえばバッファーの最後が表示されていてもさらに下にスクロールします)を制御できます。変数の値が非nilの場合、バッファーの最後が表示されていてもスクロールバーを下にドラッグできます。nilの場合、バッファーの最後が表示されたとき、内部のボックスはスクロールバーの最下になります。バッファー全体が表示されているときは、オーバースクロールできません。

スクロールバーの視覚的な外見は、scroll-barフェイスにより制御されます。

グラフィカルなフレームでは、垂直スクロールバーは暗に横並びのウィンドウを区別する役目を担っています。垂直スクロールバーが無効なとき、Emacsはデフォルトでは幅1ピクセルの垂直ボーダー(vertical border)によりそのようなウィンドウを区別します。このボーダーは右側のウィンドウの最初の1ピクセルの列を占め、したがってそこに表示されていたグリフの左端ピクセルの上に上書きされることになるでしょう。これらのピクセルに重要な情報が含まれる場合は、window dividerを有効にしてそれらを可視にできます(ウィンドウdividerを参照)。垂直ボーダーの見栄えを複製するには、フレームのright-divider-widthパラメーターを1にセットして、window-dividerフェイスをvertical-borderのフェイスから継承してください(Window Dividers in The Emacs Lisp Reference Manualを参照)。

ツールキットサポート付きのグラフィカルなディスプレイでは、Emacsは各ウィンドウの最下に水平スクロールバー(horizontal scroll bar)も提供します。スクロールバーのleftボタンまたはrightボタンをmouse-1でクリックすると、ウィンドウを1列ずつ水平にスクロールします(これらのボタンを表示しないようスクロールバーをカスタマイズできるツールキットがあることに注意)。スクロールバーの内部ボックスの左または右下をmouse-1でクリックすると、ウィンドウは4列スクロールします。スクロールバー内部のボックスをドラッグすると、連続してスクロールします。

このような水平スクロールにより、そのウィンドウのポイント位置が、右側または左側の見えない場所になるかもしれないことに注意してください。文字をタイプしてテキストを挿入したり、キーボードコマンドでポイントを移動することにより通常、ポイントは視界に戻るでしょう。

水平スクロールバーの使用を切り替えるには、M-x horizontal-scroll-bar-modeとタイプします。このコマンドは、まだ作成されていないフレームも含めて、すべてのフレームに適用されます。選択されたフレームの水平スクロールバーだけ切り替えたい場合は、コマンドM-x toggle-horizontal-scroll-barを使用してください。

起動時に水平スクロールバーの使用を制御するには、変数horizontal-scroll-bar-modeをカスタマイズしてください。

Xリソース‘horizontalScrollBars’を使って、水平スクロールバーを有効または無効にすることができます(Xリソースを参照してください)。スクロールバーの高さを制御するには、フレームパラメーターscroll-bar-heightを変更してください(Frame Parameters in The Emacs Lisp Reference Manualを参照してください)。