私はemacs構成ファイルを持っていますwhatever.el
:
(abbrev-mode +1)
(provide 'whatever)
そして私の中でinit.el
:
(require 'whatever)
しかし、emacsを起動すると、abbrev-mode
が有効になりません。なぜ ?
ありがとうございました
http://emacswiki.org/emacs/AbbrevModeからの引用:
常にオンにしたい場合は、〜/.emacsファイルに以下を入れることもできます。
(setq default-abbrev-mode t)
テキストモードと派生モードでのみオンにしたい場合は、次のようにすることができます。
(add-hook 'text-mode-hook (lambda () (abbrev-mode 1)))
複数のモードの場合は、次のようなものを使用します。
(dolist (hook '(erc-mode-hook emacs-lisp-mode-hook text-mode-hook)) (add-hook hook (lambda () (abbrev-mode 1))))
略語モードはバッファごとに有効になります。
1つの方法は、使用するメジャーモードフックに追加できるフック関数を作成することです。
例えば:
(defun my-enable-abbrev-mode ()
(abbrev-mode 1))
(add-hook 'c-mode-hook 'my-enable-abbrev-hook)
(add-hook 'java-mode-hook 'my-enable-abbrev-hook)
別のアプローチは、を使用することchange-major-mode-hook
です。
他の人があなたがおそらく欲しいものを手に入れる方法を説明している間、私はあなたの実際の質問(「なぜ?」)にそのwrtを指摘します、理由は単純です:abbrev-modeはバッファローカルマイナーモードなので、あなたが起動時に(abbrev-mode +1)を実行すると、 ~/.emacs
(通常はスクラッチ)の評価中にたまたま現在のバッファーでabbrev-modeが有効になりますが、後続のバッファーでは有効になりません。