Vô hiệu hóa thanh cuộn trên khung mới


10

Tôi muốn đảm bảo rằng các thanh cuộn không bao giờ xuất hiện trên các cửa sổ của tôi, nhưng gần đây tôi nhận thấy rằng khi tôi tạo một khung mới với C-x 5 2khung mới sẽ có một thanh cuộn, mặc dù khung ban đầu không có. Các dòng có thể có liên quan từ tôi init.eldưới đây:

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

Tôi vẫn có thể sử dụng M-x toggle-scroll-barđể tắt nó trong khung mới, nhưng tôi cảm thấy không cần thiết.

Để làm rõ, tôi đang sử dụng emacsclient -c &để khởi động Emacs trên Ubuntu và khi tôi làm điều này, tôi nhận được một thanh cuộn. C-h v scroll-bar-modeđưa cho tôi:

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.

Vì vậy, giá trị của scroll-bar-modeđược đặt đúng nil, nhưng bằng cách nào đó, Emacs đang bỏ qua điều này để đưa cho tôi một thanh cuộn.

Câu trả lời:


8

Tôi cũng gặp vấn đề này, cho đến khi tôi thêm đoạn mã sau. (Tôi tin rằng tôi đã bắt gặp đoạn trích ở đây trên Stack Exchange, nhưng xin lỗi tôi không nhớ tác giả.)

(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

Bạn có thể điều chỉnh các tham số khung trong default-frame-alistđể nói với Emacs bạn không bao giờ muốn thanh cuộn. Thêm phần sau vào tệp init của bạn:

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

Tôi cảm thấy như vậy nên làm việc, nhưng nó không. Vẫn nhận được thanh cuộn, nhưng chỉ trên khung thứ hai.
Ryan

@Ryan: lạ! Các công việc trên cho tôi. Điều khác duy nhất trong tệp init của tôi có thể có liên quan là một cái cũ (toggle-scroll-bar -1)mà tôi đã không xóa. Bạn có thể thử thêm nó vào, nhưng ngoài ra, tôi không đoán được.
Dân

Được rồi, vì vậy nó thực sự hoạt động trên Ubuntu, nhưng không phải trên Windows. Lần tới tôi ở bên Windows tôi sẽ kiểm tra (toggle-scroll-bar).
Ryan

Bây giờ tôi thậm chí không biết phải nghĩ gì. Đã khởi động lại và hiện tại nó cũng không hoạt động trong Ubuntu. Mỗi khung hình mới được tạo bằng thanh cuộn và tôi phải M-x toggle-scroll-barloại bỏ nó.
Ryan

Có, MS Windows đặc biệt trong việc này. Ngoài ra, tôi khuyên bạn nên tùy chọn tùy chỉnh default-frame-alist . Có một lý do đó là một tùy chọn người dùng.
Drew

1

Không phải ai cũng muốn sử dụng tùy chỉnh, nhưng việc sử dụng nó để vô hiệu hóa thanh cuộn khiến vấn đề không còn nữa. Các biến bạn muốn là: scroll-bar-modehorizontal-scroll-bar-mode.

Nếu không sử dụng tệp tùy chỉnh, tùy chỉnh vẫn có thể được sử dụng bằng cách đặt các tệp này vào init của bạn:

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

Điều đó sẽ đủ để vô hiệu hóa bất kỳ và tất cả các thanh cuộn trong bất kỳ loại khung.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.