Theo thiết kế, fundamental-mode
xương trần là các chế độ chính khác được cho là xuất phát từ cái này.
Từ trang thông tin (elisp) Major Modes
, chúng tôi có:
Đây là lệnh chế độ chính cho chế độ Cơ bản. Không giống như các lệnh chế độ khác, nó không chạy bất kỳ hook chế độ nào (* lưu ý Quy ước chế độ chính: :), vì bạn không cần phải tùy chỉnh chế độ này.
Vì lý do đó,
- Chúng tôi không có một
fundamental-mode-hook
. - Cũng
my-minor-mode
không được kích hoạt CHỈ trong bộ đệm chế độ chính này, cảm hứng có(global-my-minor-mode 1)
trong cấu hình của tôi.
Dưới đây sẽ hoạt động nhưng chỉ khi tôi gõ thủ công M-x fundamental-mode
:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
Nó không giúp ích gì trong trường hợp dưới đây khi fundamental-mode
bộ đệm (* abcd *) được tạo theo mặc định:
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
Tại sao tôi muốn kích hoạt chế độ nhỏ trong fundamental-mode
?
Tôi muốn giữ các ràng buộc khóa tùy chỉnh trong bản đồ chế độ nhỏ của mình. Tôi có chế độ nhỏ này được bật trên toàn cầu (nhưng nó không được kích hoạt chỉ trong fundamental-mode
bộ đệm).
Đây là một trường hợp sử dụng làm cho câu hỏi này ở đây. Khi thực hiện M-x esup
( esup
gói), nó tạo ra một *esup-log*
bộ đệm với fundamental-mode
chế độ chính. Nhưng mỗi lần tôi cần kích hoạt chế độ nhỏ của mình theo cách thủ công để sử dụng các ràng buộc thuận tiện của mình.
Tôi muốn kích hoạt my-minor-mode
một cách thực sự toàn cầu, fundamental-mode
hoặc không.
Cập nhật 1:
Đây là định nghĩa chế độ nhỏ của tôi : modi-mode
.
Cập nhật 2:
Dựa trên nhận xét của @npostavs , tôi đã xem xét những gì khác nhau giữa chế độ nhỏ của tôi modi-mode
và override-global-mode
trong use-package/bind-key.el
. Và hóa ra giá trị init của chế độ của tôi là nil
và đó override-global-mode
là t
.
Nếu tôi thay đổi giá trị init của chế độ của mình thành t
, nó cũng sẽ được bật trong bộ đệm chế độ cơ bản! Nhưng hành động (global-modi-mode 1)
không kết thúc với cùng một kết quả. Có lạ không? Có lẽ là một lỗi?
use-package
thực hiện điều đó.
nil
; nhưng tôi cho phép nó trên toàn cầu.
buffer.c
, có vẻ như get-buffer-create
chạy buffer-list-update-hook
ở phần cuối của chức năng của nó, có lẽ bạn có thể gắn chức năng của riêng mình với các điều kiện cho cái móc đó?
fundamental-mode
bộ đệm cho tôi, vì vậy có lẽ vấn đề nằm ở định nghĩa chế độ của bạn.override-global-mode