Por design, o fundamental-mode
esqueleto é ó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-mode
nã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-mode
buffer (* 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-mode
buffers).
Aqui está um caso de uso que fez isso fazer essa pergunta aqui. Ao fazer M-x esup
( esup
pacote), ele cria um *esup-log*
buffer com fundamental-mode
o 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-mode
de uma maneira verdadeiramente global, fundamental-mode
ou 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-mode
e o override-global-mode
in use-package/bind-key.el
. E acontece que o valor init do meu modo é nil
e o de override-global-mode
is 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-package
implementa isso.
nil
; mas eu o habilito globalmente.
buffer.c
, parece que get-buffer-create
corre o buffer-list-update-hook
mesmo no fim de sua função, talvez você pode anexar sua própria função com condições para esse gancho?
fundamental-mode
buffers para mim, então talvez o problema esteja na definição do seu modo.override-global-mode