Dengan desain, fundamental-mode
tulang 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-mode
tidak 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-mode
buffer (* 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-mode
buffer).
Berikut ini adalah kasus penggunaan yang membuat ini mengajukan pertanyaan ini di sini. Saat melakukan M-x esup
( esup
paket), ia menciptakan *esup-log*
buffer dengan fundamental-mode
sebagai 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-mode
secara global, fundamental-mode
atau 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-mode
dan override-global-mode
in use-package/bind-key.el
. Dan ternyata bahwa nilai init dari modus saya adalah nil
dan bahwa override-global-mode
adalah 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-package
mengimplementasikannya.
nil
; tapi saya mengaktifkannya secara global.
buffer.c
, sepertinya get-buffer-create
menjalankan bagian buffer-list-update-hook
paling akhir dari fungsinya, mungkin Anda bisa melampirkan fungsi Anda sendiri dengan kondisi ke kait itu?
fundamental-mode
buffer untuk saya, jadi mungkin masalahnya ada pada definisi mode Anda.override-global-mode