回答:
パッケージが延期される場合、つまり、必要になるまでロードされない場合、それらは異なります。その場合:init、emacsファイルが最初に読み込ま:configれたときに実行されますが、パッケージが実際にロードされたときに実行されます。
あなたの例ではmode、パッケージのロードを暗黙的に延期します。htmlファイルが初めてアクセスされたときにパッケージがロードされるように設定しました。
:demandパッケージが起動時に常にロードされるようにするために使用できますが、ここでやりたいことはフックをに入れることです:init。
docstringから:
:init Code to run when `use-package' form evals.
これをuser-initファイルに入れているため、基本的には起動時に実行されます。
:config Runs if and when package loads.
そのため、パッケージが実際にロードされるまで実行しないでください。
:defer Defer loading of package -- automatic if :commands, :bind, :bind*,  :mode or :interpreter are used.
パッケージを自動的に遅延させるもののリストに注意してください。基本的に、use-packageこのパッケージが必要な条件を指定すると、それらの条件が発生するまでロードしたくないと見なされます。
:demand Prevent deferred loading in all cases.
指定した他のオプションに関係なく、起動時にパッケージがロードされていることを確認してください。
更新
最近のコメントに基づいてこれを再検討します...上記で私が言ったことはすべて真実ですが、質問に正しく答えるとは思いません。ここでの根本的な問題は、実際にhtml-modeはパッケージではなく、パッケージによって定義されたモードですsgml-mode。これは私にとって期待通りに機能します:
(use-package sgml-mode
  :mode ("\\.html\\'" . html-mode)
  :config (add-hook 'html-mode-hook 'turn-off-auto-fill))
元の例では、指定:configされたパッケージhtml-modeがロードされないため、式は評価されません。:initパッケージがロードされたかどうかに関係なく、initコードは常に評価されるため、同じ式を動作するように移動します。
:idleかなり広範囲に使用しており、「:idle has been removed」の影響については調べていません。
                    auto-fillオフにならない、つまり構成コードが実行されなかった理由は、まだわかりません。私は同じ問題を抱えています。
                    html-modeは、パッケージではないことだと思います。少なくとも私の現在のバージョンのEmacsではhtml-mode、パッケージで定義されていますsgml-mode。そのため、指定されuse-packageたパッケージhtml-modeがロードされたときに何かを行うように指示すると、そのようなパッケージはロードされないため、コードは実行されません。にhtmlモードのセットアップを配置する必要があります(use-package sgml-mode ....)。
                    org-modeにありhtml-modeます 同様の問題として、パッケージが呼び出されますorg-modeが、ELPAパッケージが呼び出されorgます。たぶんそれが混乱しているのでしょうか(または私)?
                    この例により、との違いを理解しやすく:initなりました:config。ace-windowパッケージの例を見てみましょう(ただし、これはどのパッケージでもかまいません)。これをinit.elファイルに入れてください:
(use-package ace-window
  :ensure t
  :defer t
  :config
  (progn
    (message "ace window: hello world")))
ここで、emacsを開き、*Messages*バッファー内でhello worldメッセージがあるかどうかを確認します。パッケージが延期されているため、見つけることができません。からconfigに変更しますinit:
(use-package ace-window
  :ensure t
  :defer t
  :init
  (progn
    (message "ace window: hello world")))
次に、emacsを閉じて再度開き、*Messages*バッファーを調べます。ace window: hello worldコードはいつ:init指定されても実行されるため、メッセージが表示されます。その場合、configそのパッケージがロードされたときにのみ実行されます。
:initと:preface例の違いは何ですか?
                    :preface問題のパッケージがされていても実行されて無効のに対し、:initパッケージが有効になっている場合にのみ実行されます。