2012-05-17 3 views
1

У меня есть файл конфигурации Emacs whatever.el:Почему режим не включен?

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

и в моем init.el:

(require 'whatever) 

, но когда я начала Emacs, abbrev-mode не включен. Зачем ?

спасибо

+0

Я не думаю, что я когда-либо видел '+', как это, но я вижу, что это действительно (если избыточно :) – phils

+0

Я узнал его, прочитав код с http://github.com/bbatsov/prelude i найти его очень читаемым, активируя с помощью '+ 1' и деактивируя« -1 » – jney

ответ

3

Цитируя http://emacswiki.org/emacs/AbbrevMode:

Вы также можете поместить следующее в файл ~/.emacs файл, если вы хотите его всегда:

(setq default-abbrev-mode t) 

Если вы только хотите дальше в тексте и полученные режимы, вы могли бы сделать что-то вроде этого:

(add-hook 'text-mode-hook (lambda() (abbrev-mode 1))) 

F или несколько режимов, использовать что-то вроде следующего:

(dolist (hook '(erc-mode-hook 
       emacs-lisp-mode-hook 
       text-mode-hook)) 
    (add-hook hook (lambda() (abbrev-mode 1)))) 
2

Аббревиатурный режим разрешен для каждого буфера.

Одним из способов является создание функции крюка, что вы могли бы добавить к основной режим крюков вы хотите использовать его в

Например:.

(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.

1

В то время как другие объяснили, как получить то, что Вы, вероятно, хотите, я просто указать на то, что WRT на ваш реальный вопрос («Почему?»), то Причина проста: abbrev-mode - это вспомогательный буфер-локальный режим, поэтому при запуске (abbrev-mode +1) при запуске он просто активирует режим abbrev в буфере, который будет текущим во время оценки ~/.emacs (обычно царапины), но не в последующих буферах.

Смежные вопросы