Por design, o fundamental-modeesqueleto é óbvio, pois outros modos principais devem derivar desse.
Na página de informações (elisp) Major Modes, temos:
Este é o comando principal do modo Fundamental. Diferente de outros comandos de modo, ele não executa nenhum gancho de modo (* note Convenções principais de modo: :), pois você não deve personalizar esse modo.
Por essa razão,
- Nós não temos a
fundamental-mode-hook. - Também
my-minor-modenão é habilitado SOMENTE neste modo principal, embora os buffers tenham(global-my-minor-mode 1)na minha configuração.
Abaixo funcionaria, mas somente se eu digitar manualmente M-x fundamental-mode:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
Não ajuda no caso abaixo em que um fundamental-modebuffer (* abcd *) é criado por padrão:
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
Por que desejo ativar um modo secundário fundamental-mode?
Eu gosto de manter minhas ligações de teclas personalizadas no meu mapa de modo secundário. Eu tenho esse modo secundário ativado globalmente (mas não é ativado apenas em fundamental-modebuffers).
Aqui está um caso de uso que fez isso fazer essa pergunta aqui. Ao fazer M-x esup( esuppacote), ele cria um *esup-log*buffer com fundamental-modeo modo principal. Mas cada vez que eu preciso habilitar meu modo secundário manualmente nele para usar minhas ligações convenientes.
Eu gostaria de ativar my-minor-modede uma maneira verdadeiramente global, fundamental-modeou não.
Atualização 1:
Aqui está o meu menor definição modo: modi-mode.
Atualização 2:
Com base no comentário do @npostavs , revi as diferenças entre o meu modo menor modi-modee o override-global-modein use-package/bind-key.el. E acontece que o valor init do meu modo é nile o de override-global-modeis t.
Se eu alterar o valor init do meu modo para t, ele também será ativado nos buffers do modo fundamental! Mas o ato de (global-modi-mode 1)não termina com o mesmo resultado. Isso é estranho? Provavelmente um bug?
use-packageimplementa isso.
nil; mas eu o habilito globalmente.
buffer.c, parece que get-buffer-createcorre o buffer-list-update-hookmesmo no fim de sua função, talvez você pode anexar sua própria função com condições para esse gancho?
fundamental-modebuffers para mim, então talvez o problema esteja na definição do seu modo.override-global-mode