新しいフレームのスクロールバーを無効にする


10

スクロールバーがウィンドウに表示されないようにしたいのですが、新しいフレームで新しいフレームを作成したときにC-x 5 2、元のフレームではスクロールバーが表示されないにもかかわらず、スクロールバーが表示されることに最近気付きました。私から関連があるかもしれない行init.elは以下の通りです:

(scroll-bar-mode -1)
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
(if (fboundp 'menu-bar-mode) (menu-bar-mode -1))

私はまだM-x toggle-scroll-bar新しいフレームでそれをオフにするために使用できますが、それは必要ではないはずです。

明確にするために、私はemacsclient -c &UbuntuでEmacsを起動するために使用しています。これを実行すると、スクロールバーが表示されます。 C-h v scroll-bar-mode私に与える:

scroll-bar-mode is a variable defined in `scroll-bar.el'.
Its value is nil
Original value was right

Documentation:
Specify whether to have vertical scroll bars, and on which side.
Possible values are nil (no scroll bars), `left' (scroll bars on left)
and `right' (scroll bars on right).
To set this variable in a Lisp program, use `set-scroll-bar-mode'
to make it take real effect.
Setting the variable with a customization buffer also takes effect.

You can customize this variable.

したがって、の値scroll-bar-modeはに適切に設定されていますnilが、どういうわけかEmacsはこれを無視してスクロールバーを表示しています。

回答:


8

次のコードを追加するまで、この問題にも遭遇しました。(ここでStack Exchangeのスニペットに遭遇したと思いますが、申し訳ありませんが、作者を思い出しません。)

(defun my/disable-scroll-bars (frame)
  (modify-frame-parameters frame
                           '((vertical-scroll-bars . nil)
                             (horizontal-scroll-bars . nil))))
(add-hook 'after-make-frame-functions 'my/disable-scroll-bars)

3

あなたは調整することができ、フレームのパラメータでのdefault-frame-alistあなたは、スクロールバーをたくないのEmacsを伝えるために。以下をinitファイルに追加します。

(add-to-list 'default-frame-alist
             '(vertical-scroll-bars . nil))

それはうまくいくように感じますが、うまくいきません。まだスクロールバーを取得しますが、2番目のフレームのみです。
ライアン

@ライアン:奇妙な!上記は私のために働きます。私のinitファイルで他に関連がある可能性があるのは、(toggle-scroll-bar -1)削除していない古いものだけです。それを追加することもできますが、それを超えて、私は推測できません。
ダン

わかりましたので、Ubuntuでは実際に機能しますが、Windowsでは機能しません。次回Windows側にいるときにチェックし(toggle-scroll-bar)ます。
Ryan

今、私は何を考えればよいのかさえわかりません。再起動すると、Ubuntuでも動作しなくなりました。新しいフレームはすべてスクロールバーで作成さM-x toggle-scroll-barれるので、それを取り除く必要があります。
Ryan

はい、MS Windowsはこれに特別です。それ以外は、オプションのカスタマイズを お勧めしますdefault-frame-alist。それがユーザーオプションである理由があります。
2016年

1

誰もがカスタマイズの使用を望んでいるわけではありませんが、それを使用してスクロールバーを無効にすると、問題が消えます。必要な変数はscroll-bar-mode、およびhorizontal-scroll-bar-modeです。

カスタマイズファイルを使用しない場合でも、これらをinitに配置することでカスタマイズを利用できます。

;; disable scrollbars
(customize-set-variable 'scroll-bar-mode nil)
(customize-set-variable 'horizontal-scroll-bar-mode nil)

これは、任意のフレームタイプのすべてのスクロールバーを無効にするのに十分です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.