De par sa conception, les fundamental-modeos sont nus, car d'autres modes majeurs sont censés dériver de celui-ci.
Depuis la page info (elisp) Major Modes, nous avons:
Il s'agit de la commande de mode principale pour le mode fondamental. Contrairement aux autres commandes de mode, il ne pas exécuter des crochets en mode (note * Conventions de mode majeur: :), puisque vous n'êtes pas censé personnaliser ce mode.
Pour cette raison,
- Nous n'en avons pas
fundamental-mode-hook. - N'obtient également
my-minor-modepas activé UNIQUEMENT dans ce mode majeur tampons malgré avoir(global-my-minor-mode 1)dans ma config.
Ci-dessous fonctionnerait mais seulement si je tapais manuellement M-x fundamental-mode:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
Cela n'aide pas dans le cas ci-dessous où un fundamental-modetampon (* abcd *) est créé par défaut:
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
Pourquoi je veux activer un mode mineur dans fundamental-mode?
J'aime conserver mes raccourcis clavier personnalisés dans ma carte de mode mineur. J'ai ce mode mineur activé globalement (mais il n'est pas activé uniquement dans les fundamental-modetampons).
Voici un cas d'utilisation qui a permis de poser cette question ici. En faisant M-x esup( esuppackage), il crée un *esup-log*tampon avec fundamental-modecomme mode principal. Mais à chaque fois, je dois activer mon mode mineur manuellement pour utiliser mes liaisons pratiques.
J'aimerais activer my-minor-moded'une manière vraiment mondiale, fundamental-modeou non.
Mise à jour 1:
Voici mon mode mineur définition: modi-mode.
Mise à jour 2:
Sur la base du commentaire de @npostavs , j'ai examiné ce qui diffère entre mon mode mineur modi-modeet override-global-modedans use-package/bind-key.el. Et il se trouve que la valeur init de mon mode est nilet celle de override-global-modeis t.
Si je change la valeur init de mon mode en t, elle est également activée dans les tampons en mode fondamental! Mais l'acte de (global-modi-mode 1)ne se termine pas avec le même résultat. Est-ce étrange? Probablement un bug?
use-packagemet en œuvre cela.
nil; mais je l'active globalement.
buffer.c, il semble que get-buffer-creates'exécute le tout buffer-list-update-hookà la fin de sa fonction, peut-être pourriez-vous attacher votre propre fonction avec des conditions à ce crochet?
fundamental-modetampons pour moi, donc peut-être que le problème est dans la définition de votre mode.override-global-mode