設計上、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-modeIS t。
モードの初期値をに変更するtと、基本モードバッファーでも有効になります!しかし、行為は(global-modi-mode 1)同じ結果で終わるわけではありません。変ですか?おそらくバグですか?
use-package実装する方法を確認します。
nil。しかし、私はそれをグローバルに有効にします。
buffer.c、関数の最後でをget-buffer-create実行しbuffer-list-update-hookているように見えます。おそらく、独自の関数に条件付きのフックをアタッチできますか?
fundamental-modeバッファーで有効になるので、おそらく問題はモードの定義にあります。override-global-mode