1

私はemacs構成ファイルを持っていますwhatever.el

(abbrev-mode +1)
(provide 'whatever)

そして私の中でinit.el

(require 'whatever)

しかし、emacsを起動すると、abbrev-modeが有効になりません。なぜ ?

ありがとうございました

4

3 に答える 3

3

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))))
于 2012-05-17T13:28:12.497 に答える
2

略語モードはバッファごとに有効になります。

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です。

于 2012-05-17T13:24:18.423 に答える
1

他の人があなたがおそらく欲しいものを手に入れる方法を説明している間、私はあなたの実際の質問(「なぜ?」)にそのwrtを指摘します、理由は単純です:abbrev-modeはバッファローカルマイナーモードなので、あなたが起動時に(abbrev-mode +1)を実行すると、 ~/.emacs(通常はスクラッチ)の評価中にたまたま現在のバッファーでabbrev-modeが有効になりますが、後続のバッファーでは有効になりません。

于 2012-05-18T19:27:07.477 に答える