Dengan desain, fundamental-modetulang telanjang seperti mode utama lainnya seharusnya berasal dari ini.
Dari halaman info (elisp) Major Modes, kami memiliki:
Ini adalah perintah mode utama untuk mode Fundamental. Tidak seperti perintah mode lainnya, ini tidak menjalankan mode kait apa pun (* perhatikan Konvensi Mode Utama: :), karena Anda tidak seharusnya menyesuaikan mode ini.
Untuk alasan itu,
- Kami tidak punya
fundamental-mode-hook. - Juga
my-minor-modetidak bisa diaktifkan HANYA dalam mode buffer utama ini meskipun ada(global-my-minor-mode 1)di konfigurasi saya.
Di bawah ini akan berfungsi tetapi hanya jika saya mengetik secara manual M-x fundamental-mode:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
Ini tidak membantu dalam kasus di bawah ini di mana fundamental-modebuffer (* abcd *) dibuat secara default:
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
Mengapa saya ingin mengaktifkan mode minor fundamental-mode?
Saya suka menyimpan binding kunci kustom saya di peta mode minor saya. Saya memiliki mode minor ini diaktifkan secara global (tetapi itu tidak bisa diaktifkan hanya dalam fundamental-modebuffer).
Berikut ini adalah kasus penggunaan yang membuat ini mengajukan pertanyaan ini di sini. Saat melakukan M-x esup( esuppaket), ia menciptakan *esup-log*buffer dengan fundamental-modesebagai mode utamanya. Tetapi setiap kali saya perlu mengaktifkan mode minor saya secara manual di dalamnya untuk menggunakan binding nyaman saya.
Saya ingin mengaktifkan my-minor-modesecara global, fundamental-modeatau tidak.
Pembaruan 1:
Berikut adalah definisi modus kecil saya: modi-mode.
Pembaruan 2:
Berdasarkan komentar @npostavs , saya meninjau apa yang berbeda antara mode minor saya modi-modedan override-global-modein use-package/bind-key.el. Dan ternyata bahwa nilai init dari modus saya adalah nildan bahwa override-global-modeadalah t.
Jika saya mengubah nilai init dari mode saya ke t, itu juga akan diaktifkan di buffer mode dasar! Tetapi tindakan (global-modi-mode 1)tidak berakhir dengan hasil yang sama. Apakah itu aneh? Mungkin bug?
use-packagemengimplementasikannya.
nil; tapi saya mengaktifkannya secara global.
buffer.c, sepertinya get-buffer-createmenjalankan bagian buffer-list-update-hookpaling akhir dari fungsinya, mungkin Anda bisa melampirkan fungsi Anda sendiri dengan kondisi ke kait itu?
fundamental-modebuffer untuk saya, jadi mungkin masalahnya ada pada definisi mode Anda.override-global-mode