In base alla progettazione, si fundamental-mode
tratta 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-mode
buffer (* 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-mode
buffer).
Ecco un caso d'uso che ha reso questa domanda questa domanda qui. Nel fare M-x esup
( esup
pacchetto), crea un *esup-log*
buffer con fundamental-mode
la sua modalità principale. Ma ogni volta che devo abilitare manualmente la mia modalità minore per usare i miei comodi collegamenti.
Vorrei abilitare my-minor-mode
in modo veramente globale, fundamental-mode
oppure 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-mode
e override-global-mode
in use-package/bind-key.el
. E si scopre che il valore iniziale della mia modalità è nil
e 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-package
implementa.
nil
; ma lo abilito a livello globale.
buffer.c
, sembra che get-buffer-create
corre il buffer-list-update-hook
proprio alla fine della sua funzione, forse si potrebbe allegare una propria funzione con le condizioni a quel gancio?
fundamental-mode
buffer per me, quindi forse il problema è nella definizione della tua modalità.override-global-mode