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

42.14 スクロールバー

通常、フレームパラメータ vertical-scroll-bars は、フレーム内のウィンドウに垂直スクロールバーを設けるかどうか、およびそれを左右のどちらに配置するかを制御します。フレームパラメータ scroll-bar-width はその幅を指定します(nil はデフォルトを意味します)。

フレームパラメータ horizontal-scroll-bars は、フレーム内のウィンドウに水平スクロールバーを表示するかどうかを制御します。フレームパラメータ scroll-bar-height は、その高さを指定します(nil はデフォルトを意味します)。レイアウトパラメータ を参照してください。

水平スクロールバーは、すべてのプラットフォームで利用できるわけではありません。引数を取らない関数 horizontal-scroll-bars-available-p は、システムで利用可能な場合に non-nil を返します。

以下の3つの関数は、引数としてライブフレームを受け取ります。デフォルトでは選択中のフレームが指定されます。

関数: frame-current-scroll-bars &optional frame

この関数は、フレーム frame のスクロールバーの種類を報告します。値はコンスセル (vertical-type . horizontal-type) であり、vertical-type は left、right、または nil(垂直スクロールバーがないことを意味する)のいずれかです。horizontal-type は bottom または nil(水平スクロールバーがないことを意味する)のいずれかです。

関数: frame-scroll-bar-width &optional frame

この関数は、frame の垂直スクロールバーの幅をピクセル単位で返します。

関数: frame-scroll-bar-height &optional frame

この関数は、frame の水平スクロールバーの高さをピクセル単位で返します。

以下の関数を使用することで、個々のウィンドウに対してフレーム固有の設定を上書きできます。

関数: set-window-scroll-bars window &optional width vertical-type height horizontal-type persistent

この関数は、ウィンドウ window の幅および/または高さ、ならびにスクロールバーの種類を設定します。window が nil の場合、選択中のウィンドウが使用されます。

width は垂直スクロールバーの幅をピクセル単位で指定します(nil はフレームで指定された幅を使用することを意味します)。vertical-type は垂直スクロールバーを表示するかどうか、および表示する場合の位置を指定します。指定可能な値は、フレームのデフォルトを使用する left、right、t、および垂直スクロールバーを表示しない nil です。

height は水平スクロールバーの高さをピクセル単位で指定します(nil はフレームで指定された高さを使用することを意味します)。horizontal-type は水平スクロールバーを表示するかどうかを指定します。指定可能な値は、フレームのデフォルトを使用する bottom および t、そして水平スクロールバーを表示しない nil です。なお、ミニウィンドウの場合、値 t は nil と同じ意味、すなわち水平スクロールバーを表示しないことを意味します。ミニウィンドウで水平スクロールバーを表示するには、明示的に bottom を指定する必要があります。

window が希望する寸法のスクロールバーを収めるのに十分な大きさでない場合、対応するスクロールバーは変更されません。

ここで指定された値は、後に window に対して keep-margins 引数 nil を指定して set-window-buffer を呼び出すか(バッファとウィンドウ を参照)、あるいは省略することで、上書きされる場合があります。ただし、省略可能な第5引数 persistent が nil 以外であり、かつ他の引数が正常に処理された場合、ここで指定された値はその後の set-window-buffer の呼び出しにおいても無条件に保持されます。

set-window-scroll-bars および set-window-fringes の persistent 引数(フリンジのサイズと位置 を参照)を使用すると、初期初期化ファイル(初期化ファイル を参照)に以下のスニペットを追加することで、任意のミニバッファウィンドウにおいてスクロールバーやフリンジを確実かつ恒久的に非表示にできます。

(add-hook 'after-make-frame-functions
          (lambda (frame)
            (set-window-scroll-bars
             (minibuffer-window frame) 0 nil 0 nil t)
            (set-window-fringes
             (minibuffer-window frame) 0 0 nil t)))

以下の4つの関数は、引数としてライブウィンドウ(デフォルトでは選択中のウィンドウ)を受け取ります。

関数: window-scroll-bars &optional window

この関数は、(width columns vertical-type height lines horizontal-type persistent) 形式のリストを返します。

値 width は、垂直スクロールバーの幅に指定された値(nil の場合もあります)であり、columns は、垂直スクロールバーが実際に占有する(端数処理されている可能性のある)列数です。

値 height は、水平スクロールバーの高さに指定された値(nil となる場合があります)であり、lines は、水平スクロールバーが実際に占有する(端数処理されている可能性のある)行数です。

The value of persistent is the value specified for window with the last successful invocation of set-window-scroll-bars, nil if there never was one.

関数: window-current-scroll-bars &optional window

この関数は、ウィンドウ window のスクロールバーの種類を返します。値はコンスセル (vertical-type . horizontal-type) です。window-scroll-bars とは異なり、フレームのデフォルト値と scroll-bar-mode を考慮した上で、実際に使用されているスクロールバーの種類を返します。

関数: window-scroll-bar-width &optional window

この関数は、windowの垂直スクロールバーの幅をピクセル単位で返します。

関数: window-scroll-bar-height &optional window

この関数は、windowの水平スクロールバーの高さをピクセル単位で返します。

set-window-scroll-bars でウィンドウのスクロールバー設定を指定しない場合、表示されているバッファ内のバッファローカル変数 vertical-scroll-bar、horizontal-scroll-bar、scroll-bar-width、scroll-bar-height がウィンドウのスクロールバーを制御します。関数 set-window-buffer はこれらの変数を参照します。すでにウィンドウに表示されているバッファでこれらの変数を変更した場合、同じく表示されているバッファを指定して set-window-buffer を呼び出すことで、ウィンドウに新しい値を反映させることができます。

以下の変数を設定することで、特定のバッファにおけるスクロールバーの表示を制御できます。これらの変数は、設定時に自動的にバッファローカルになります。

変数: vertical-scroll-bar

この変数は、垂直スクロールバーの位置を指定します。指定可能な値は、フレームのデフォルトを使用する left、right、t と、スクロールバーを表示しない nil です。

変数: horizontal-scroll-bar

この変数は、水平スクロールバーの位置を指定します。指定可能な値は、bottom、フレームのデフォルトを使用するt、およびスクロールバーを表示しないnilです。

変数: scroll-bar-width

この変数は、バッファの垂直スクロールバーの幅をピクセル単位で指定します。nil という値は、フレームで指定された値を使用することを意味します。

変数: scroll-bar-height

この変数は、バッファの水平スクロールバーの高さをピクセル単位で指定します。nil という値は、フレームで指定された値を使用することを意味します。

最後に、変数 scroll-bar-mode と horizontal-scroll-bar-mode をカスタマイズすることで、すべてのフレームでスクロールバーの表示・非表示を切り替えることができます。

ユーザーオプション: scroll-bar-mode

この変数は、すべてのフレームに垂直スクロールバーを表示するかどうか、および表示位置を制御します。指定可能な値は、スクロールバーを表示しない場合は nil、左側に表示する場合は left、右側に表示する場合は right です。

ユーザーオプション: horizontal-scroll-bar-mode

この変数は、すべてのフレームに水平スクロールバーを表示するかどうかを制御します。