Như mbork đã nhận xét, bạn có thể sử dụng enjoy.el để sửa đổi hoặc vô hiệu hóa văn bản chế độ nhỏ (và thực sự chính) trong dòng chế độ.
Một trong những lợi thế là nó quan tâm đến eval-after-load
(mà bạn cần viết thủ công với diminish.el trong hầu hết các trường hợp sử dụng), giúp cấu hình sạch hơn. Bạn vẫn cần cùng một thông tin - tên của chế độ và thư viện thực hiện nó (Emacs sẽ cho bạn biết nếu bạn hỏi về chế độ) - nhưng bạn có thể gói tất cả thành một dạng duy nhất:
(require 'delight)
(delight '((some-mode nil "some-library")
(some-other-mode nil "some-other-library")))
(Hoặc theo liên kết ở trên để biết một số ví dụ sử dụng thực tế.)
Tôi khuyên bạn nên thực hiện phương pháp này, bởi vì ngay cả khi bạn không muốn hầu hết văn bản nhẹ hơn ở chế độ nhỏ, vẫn có khả năng bạn sẽ thấy một số trong số chúng hữu ích (và bạn vẫn có thể sửa đổi những cái đó ngắn hơn).
Nếu bạn thực sự muốn loại bỏ tất cả văn bản nhẹ hơn ở chế độ nhỏ (và một lần nữa, tôi không khuyến nghị điều đó), bạn có thể sửa đổi mode-line-modes
biến. Các biến dòng chế độ đã thay đổi một lúc trước, vì vậy bạn có thể muốn sử dụng M-x find-variable RET mode-line-modes RET
và sau đó điều chỉnh thủ công định nghĩa mặc định của mình, chỉnh sửa phần liên quan minor-modes-alist
.
Tất nhiên sau đó bạn cần duy trì nó, điều này không quá chớp nhoáng, vì vậy bạn có thể muốn thay thế minor-mode-alist
biểu tượng trong giá trị hiện có. Phần sau đây có phần cụ thể về triển khai, nhưng chắc chắn đẹp hơn cài đặt mode-line-modes
toàn bộ và bạn có thể bật và tắt.
(define-minor-mode minor-mode-blackout-mode
"Hides minor modes from the mode line."
t)
(catch 'done
(mapc (lambda (x)
(when (and (consp x)
(equal (cadr x) '("" minor-mode-alist)))
(let ((original (copy-sequence x)))
(setcar x 'minor-mode-blackout-mode)
(setcdr x (list "" original)))
(throw 'done t)))
mode-line-modes))
(global-set-key (kbd "C-c m") 'minor-mode-blackout-mode)