Deshabilitar la barra de desplazamiento en el nuevo marco


10

Me gustaría asegurarme de que las barras de desplazamiento nunca aparezcan en mis ventanas, pero recientemente noté que cuando creé un nuevo marco con C-x 5 2el nuevo marco, aparece una barra de desplazamiento, aunque el marco original no lo hace. Las líneas que podrían ser relevantes de mi init.elestán a continuación:

(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))

Todavía puedo usar M-x toggle-scroll-barpara apagarlo en el nuevo marco, pero siento que eso no debería ser necesario.

Para aclarar, estoy usando emacsclient -c &para iniciar Emacs en Ubuntu, y cuando hago esto obtengo una barra de desplazamiento. C-h v scroll-bar-modeme da

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.

Por lo tanto, el valor de scroll-bar-modese establece correctamente en nil, pero de alguna manera Emacs ignora esto para darme una barra de desplazamiento de todos modos.

Respuestas:


8

También me encontré con este problema, hasta que agregué el siguiente código. (Creo que me encontré con el fragmento aquí en Stack Exchange, pero lo siento, no recuerdo al autor).

(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

Puede ajustar los parámetros del marco en el default-frame-alistpara decirle a Emacs que nunca desea barras de desplazamiento. Agregue lo siguiente a su archivo init:

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

Siento que eso debería funcionar, pero no es así. Todavía obtengo la barra de desplazamiento, pero solo en el segundo cuadro.
Ryan

@ Ryan: extraño! Lo anterior funciona para mí. La única otra cosa en mi archivo de inicio que podría ser relevante es una vieja (toggle-scroll-bar -1)que no había eliminado. Podrías intentar agregar eso también, pero más allá de eso, estoy fuera de lugar.
Dan

Bien, entonces realmente funciona en Ubuntu, pero no en Windows. La próxima vez que esté en el lado de Windows lo comprobaré (toggle-scroll-bar).
Ryan

Ahora ni siquiera sé qué pensar. Reiniciado, y ahora tampoco funciona en Ubuntu. Cada nuevo marco se crea con la barra de desplazamiento, y tengo que M-x toggle-scroll-bardeshacerme de él.
Ryan

Sí, MS Windows es particular en esto. Aparte de eso, recomendaría la opción de personalización default-frame-alist . Hay una razón por la que es una opción de usuario.
Dibujó

1

No todos quieren usar personalizar, pero usarlo para deshabilitar las barras de desplazamiento hace que el problema desaparezca. Las variables que desea son: scroll-bar-modey horizontal-scroll-bar-mode.

Si no utiliza un archivo de personalización, puede seguir utilizándolo al ponerlos en su init:

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

Eso será suficiente para desactivar cualquiera y todas las barras de desplazamiento en cualquier tipo de marco.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.