Nonaktifkan scrollbar pada bingkai baru

10

Saya ingin memastikan bahwa scrollbar tidak pernah muncul di windows saya, tetapi saya baru-baru ini memperhatikan bahwa ketika saya membuat bingkai baru dengan C-x 5 2bingkai baru mendapat scrollbar, meskipun bingkai aslinya tidak. Baris yang mungkin relevan dari saya init.eladalah di bawah ini:

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

Saya masih bisa menggunakannya M-x toggle-scroll-baruntuk mematikannya di bingkai baru, tapi saya merasa itu tidak perlu.

Untuk memperjelas, saya menggunakan emacsclient -c &untuk memulai Emacs di Ubuntu, dan ketika saya melakukan ini saya mendapatkan scroll bar. C-h v scroll-bar-modememberi saya:

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.

Jadi nilai scroll-bar-modediatur dengan benar nil, tapi entah bagaimana Emacs mengabaikan ini untuk memberi saya bilah gulir.

Ryan
sumber

Jawaban:

8

Saya juga mengalami masalah ini, sampai saya menambahkan kode berikut. (Saya yakin saya menemukan cuplikan di Stack Exchange, tapi maaf saya tidak ingat penulisnya.)

(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)
InHarmsWay
sumber
3

Anda dapat menyesuaikan parameter bingkai di default-frame-alistuntuk memberi tahu Emacs bahwa Anda tidak ingin bilah gulir. Tambahkan berikut ini ke file init Anda:

(add-to-list 'default-frame-alist
             '(vertical-scroll-bars . nil))
Dan
sumber
Saya merasa itu seharusnya berhasil, tetapi ternyata tidak. Masih mendapatkan bilah gulir, tetapi hanya pada bingkai kedua.
Ryan
@Ryan: aneh! Di atas bekerja untuk saya. Satu-satunya hal lain dalam file init saya yang mungkin relevan adalah yang lama (toggle-scroll-bar -1)yang belum saya hapus. Anda bisa mencoba menambahkan itu juga, tetapi lebih dari itu, saya tidak bisa menebak.
Dan
Oke, itu benar-benar berfungsi pada Ubuntu, tetapi tidak pada Windows. Lain kali saya di sisi Windows saya akan memeriksa (toggle-scroll-bar).
Ryan
Sekarang saya bahkan tidak tahu harus berpikir apa. Reboot, dan sekarang tidak berfungsi di Ubuntu. Setiap bingkai baru dibuat dengan bilah gulir, dan saya harus M-x toggle-scroll-barmenyingkirkannya.
Ryan
Ya, MS Windows khusus dalam hal ini. Selain itu, saya akan merekomendasikan opsi penyesuaian default-frame-alist . Ada alasannya itu opsi pengguna.
Drew
1

Tidak semua orang ingin menggunakan kustomisasi, tetapi menggunakannya untuk menonaktifkan scrollbar membuat masalah menghilang. Variabel yang Anda inginkan adalah: scroll-bar-modedan horizontal-scroll-bar-mode.

Jika tidak menggunakan file khusus, kustomisasi masih dapat digunakan dengan meletakkannya di init Anda:

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

Itu sudah cukup untuk menonaktifkan semua dan semua scrollbar dalam jenis bingkai apa pun.

bklaase
sumber