Theo thiết kế, fundamental-modexươ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-modekhô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-modebộ đệ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-modebộ đệ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( esupgói), nó tạo ra một *esup-log*bộ đệm với fundamental-modechế độ 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-modemột cách thực sự toàn cầu, fundamental-modehoặ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-modevà override-global-modetrong use-package/bind-key.el. Và hóa ra giá trị init của chế độ của tôi là nilvà đó override-global-modelà 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-packagethự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-createchạ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-modebộ đệm cho tôi, vì vậy có lẽ vấn đề nằm ở định nghĩa chế độ của bạn.override-global-mode