設計上、fundamental-mode
他の主要なモードがこのモードから派生することになっているため、は必要最低限のものです。
情報ページから(elisp) Major Modes
、私たちは持っています:
これは、基本モードのメジャーモードコマンドです。他のモードコマンドとは異なり、このモードをカスタマイズする必要がないため、モードフックは実行されません(*メジャーモードの規則::に注意)。
そのため、
- ありません
fundamental-mode-hook
。 - また、私の
my-minor-mode
主要なモードのバッファでのみ有効になりませんが(global-my-minor-mode 1)
、私の設定にはあります。
以下は機能しますが、手動で入力した場合のみですM-x fundamental-mode
:
(add-hook 'after-change-major-mode-hook #'my-minor-mode)
以下の場合、fundamental-mode
デフォルトでバッファ(* abcd *)が作成されるので役に立ちません。
(with-current-buffer (get-buffer-create "*abcd*")
(insert "Hello world"))
なぜマイナーモードを有効にしたいのfundamental-mode
ですか?
マイナーモードマップにカスタムキーバインディングを保持したい。このマイナーモードをグローバルに有効化しています(ただし、fundamental-mode
バッファーでのみ有効化されません)。
これが、この質問をここで行うようにした使用例です。M-x esup
(esup
パッケージ)を実行*esup-log*
するfundamental-mode
と、メジャーモードとしてバッファを作成します。しかし、マイナーモードを手動で有効にする必要があるたびに、便利なバインディングを使用します。
my-minor-mode
本当にグローバルな方法で実現したいのfundamental-mode
か、そうでないのか。
更新1:
これがマイナーモードの定義ですmodi-mode
。
アップデート2:
@npostavsのコメントに基づいて、マイナーモードmodi-mode
との違いを確認しoverride-global-mode
ましたuse-package/bind-key.el
。そして、それは私のモードのINIT値があることが判明nil
してのことoverride-global-mode
IS t
。
モードの初期値をに変更するt
と、基本モードバッファーでも有効になります!しかし、行為は(global-modi-mode 1)
同じ結果で終わるわけではありません。変ですか?おそらくバグですか?
use-package
実装する方法を確認します。
nil
。しかし、私はそれをグローバルに有効にします。
buffer.c
、関数の最後でをget-buffer-create
実行しbuffer-list-update-hook
ているように見えます。おそらく、独自の関数に条件付きのフックをアタッチできますか?
fundamental-mode
バッファーで有効になるので、おそらく問題はモードの定義にあります。override-global-mode