In base alla progettazione, si fundamental-modetratta di ossa nude in quanto altre modalità principali dovrebbero derivare da questa.
Dalla pagina delle informazioni (elisp) Major Modes, abbiamo:
Questo è il comando principale per la modalità Fondamentale. A differenza di altri comandi di modalità, non esegue alcun hook di modalità (* nota Convenzioni di modalità principali: :), poiché non è necessario personalizzare questa modalità.
Per tale motivo,
- Non abbiamo un
fundamental-mode-hook. - Inoltre
my-minor-mode, non viene abilitato SOLO in questi buffer di modalità principali nonostante abbia(global-my-minor-mode 1)nella mia configurazione.
Di seguito funzionerebbe, ma solo se scrivessi manualmente M-x fundamental-mode:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
Non aiuta nel caso seguente in cui un fundamental-modebuffer (* abcd *) viene creato per impostazione predefinita:
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
Perché voglio abilitare una modalità minore in fundamental-mode?
Mi piace mantenere le associazioni dei tasti personalizzate nella mia mappa delle modalità minori. Ho questa modalità minore abilitata a livello globale (ma non viene abilitata solo nei fundamental-modebuffer).
Ecco un caso d'uso che ha reso questa domanda questa domanda qui. Nel fare M-x esup( esuppacchetto), crea un *esup-log*buffer con fundamental-modela sua modalità principale. Ma ogni volta che devo abilitare manualmente la mia modalità minore per usare i miei comodi collegamenti.
Vorrei abilitare my-minor-modein modo veramente globale, fundamental-modeoppure no.
Aggiornamento 1:
Ecco la mia definizione modo minore: modi-mode.
Aggiornamento 2:
Sulla base del commento di @npostavs , ho esaminato le differenze tra la mia modalità minore modi-modee override-global-modein use-package/bind-key.el. E si scopre che il valore iniziale della mia modalità è nile quello di override-global-modeè t.
Se cambio il valore di inizializzazione della mia modalità su t, anch'esso viene abilitato nei buffer in modalità fondamentale! Ma l'atto di (global-modi-mode 1)non finisce con lo stesso risultato. È strano? Probabilmente un bug?
use-packageimplementa.
nil; ma lo abilito a livello globale.
buffer.c, sembra che get-buffer-createcorre il buffer-list-update-hookproprio alla fine della sua funzione, forse si potrebbe allegare una propria funzione con le condizioni a quel gancio?
fundamental-modebuffer per me, quindi forse il problema è nella definizione della tua modalità.override-global-mode