GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Scroll-Bars.html ・ emacs-doc.conao3.com

23.12 スクロールバー

グラフィカルディスプレイでは、各Emacsウィンドウの端に垂直スクロールバーがあります。スクロールバーの上下ボタンのmouse-1をクリックすると、ウィンドウが1行ずつスクロールします(ただし、ツールキットによっては、これらのボタンを表示しないようにスクロールバーをカスタマイズできる場合があります)。スクロールバーの内側ボックスの上または下にあるmouse-1をクリックすると、M-vやC-vと同様に、ウィンドウの高さのほぼ全域にわたってスクロールします(ポイントの位置変更を参照)。(これも、ツールキットによっては動作が異なる場合があります。)内側ボックスをドラッグすると、連続的にスクロールします。

EmacsをXツールキットのサポートなしでX Window System上でコンパイルした場合、スクロールバーの動作が異なります。スクロールバー上の任意の場所にある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(垂直スクロールバーを無効にする)のいずれかに設定します。デフォルトでは、X Window System上のGTK+サポート付きでコンパイルされた場合、およびMS-WindowsやmacOSでは、Emacsはスクロールバーを右側に配置します。X Window System上でGTK+サポートなしでコンパイルされた場合は、(Xアプリケーションの従来の慣習に従い)スクロールバーを左側に配置します。

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

X上でEmacs(GTK+またはMotif使用)を利用している場合、変数 scroll-bar-adjust-thumb-portion をカスタマイズすることで、スクロールバーのオーバースクロール(つまり、バッファの末尾が表示されている状態でもサムを下にドラッグすること)を制御できます。その値が nil 以外であれば、バッファの末尾が表示されていてもスクロールバーを下にドラッグできます。値が nil であれば、バッファの末尾が表示されたときにサムが最下部に位置します。バッファ全体が表示されているときは、オーバースクロールはできません。

スクロールバーの外観は scroll-bar フェイスによって制御されます。(GTK+ や MS-Windows などの一部のツールキットではこのフェイスが無視され、スクロールバーの外観はシステム全体でのみカスタマイズ可能です。GTK+ については GTK+ リソース を参照してください。)

グラフィカルフレームでは、垂直スクロールバーが暗黙的に、左右に並んだウィンドウを視覚的に区切る役割を果たします。垂直スクロールバーが無効な場合、Emacsはデフォルトで、幅1ピクセルの垂直ボーダーを用いてこうしたウィンドウを区切ります。このボーダーはウィンドウの右側の最初のピクセル列を占めるため、そこに表示されるグリフの最左端のピクセルが上書きされることがあります。これらのピクセルが重要な情報を伝える場合は、ウィンドウディバイダーを有効にすることで表示させることができます。詳細はウィンドウディバイダーを参照してください。垂直ボーダーの外観を再現するには、フレームのright-divider-widthパラメータを1に設定し、window-dividerフェイスがvertical-borderフェイスを継承するようにします。詳細はThe Emacs Lisp Reference Manualのウィンドウディバイダーを参照してください。

ツールキット対応のグラフィカルディスプレイでは、Emacsは各ウィンドウの下部に水平スクロールバーを表示することもあります。そのスクロールバーの左右のボタン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 Resourcesを参照)。スクロールバーの高さを制御するには、scroll-bar-height フレームパラメータを変更してください(The Emacs Lisp Reference Manual の Frame Parametersを参照)。