By design, the
fundamental-mode is bare bones as other major modes are supposed to derive from this one.
From the info page
(elisp) Major Modes, we have:
This is the major mode command for Fundamental mode. Unlike other mode commands, it does not run any mode hooks (*note Major Mode Conventions::), since you are not supposed to customize this mode.
For that reason,
- We do not have a
my-minor-modedoes not get enabled ONLY in this major mode buffers inspite of having
(global-my-minor-mode 1)in my config.
Below would work but only if I manually typed
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
It does not help in the below case where a
fundamental-mode buffer (*abcd*) is created by default:
(with-current-buffer (get-buffer-create "*abcd*") (insert "Hello world"))
Why I want to enable a minor mode in
I like to keep my custom key bindings in my minor mode map. I have this minor mode enabled globally (but it does not get enabled only in
Here's a use case that made this ask this question here. On doing
M-x esup (
esup package), it creates an
*esup-log* buffer with
fundamental-mode as its major mode. But each time I need to enable my minor mode manually in it to use my convenient bindings.
I'd like to enable
my-minor-mode in a truly global fashion,
fundamental-mode or not.
Here is my minor mode definition:
Based on @npostavs' comment, I reviewed what's different between my minor mode
use-package/bind-key.el. And it turns out that the init value of my mode is
nil and that of
If I change the init value of my mode to
t, it too gets enabled in the fundamental-mode buffers! But the act of
(global-modi-mode 1) does not end with the same result. Is that odd? Probably a bug?