Aquamacs переопределяет мои опции пользовательских поверхностей набора

Я только что установил Aquamacs на своем Mac.

У меня есть .emacs файл в моем доме, который содержит все мои настройки. Среди них я имею:

(custom-set-faces
 '(default ((t (:stipple nil :background "black" :foreground "grey70" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 140 :width normal :foundry "apple" :family "Monaco"))))
 '(font-lock-builtin-face ((t (:foreground "grey50"))))
 '(font-lock-comment-face ((t (:foreground "darkgreen"))))
 '(font-lock-constant-face ((t (:foreground "grey50"))))
 '(font-lock-doc-face ((t (:foreground "grey50"))))
 '(font-lock-doc-string-face ((t (:foreground "yellow2"))))
 '(font-lock-function-name-face ((t (:foreground "SteelBlue"))))
 '(font-lock-keyword-face ((t (:foreground "red"))))
 '(font-lock-preprocessor-face ((t (:foreground "SteelBlue"))))
 '(font-lock-reference-face ((t (:foreground "LightSkyBlue"))))
 '(font-lock-string-face ((t (:foreground "yellow2"))))
 '(font-lock-type-face ((t (:foreground "violet"))))
 '(font-lock-variable-name-face ((t (:foreground "orange"))))
 '(font-lock-warning-face ((t (:foreground "grey50"))))
 '(isearch ((t (:background "yellow4" :foreground "black"))))
 '(mode-line ((t (:background "grey90" :foreground "black"))))
 '(text-mode-default ((t nil)))
 '(zmacs-region ((t (:background "grey70" :foreground "black")))))

Этот блок, кажется, не применяется автоматически.

Если я выбираю строки из .emacs и вручную оцениваю их, все хорошо работает. Мое предположение - то, что эти опции переопределяются в некотором другом месте.

Как я могу отладить это? Где я должен бороться?

ОБНОВЛЕНИЕ:

Согласно этому, предпочтения должны быть загружены в следующем порядке:

 ~/.emacs  (deprecated -- meaning 'should not be used
 for new installations, but will continue to be supported' -- in Aquamacs on OS X)
 customizations saved by request or automatically by Aquamacs in customizations.el
 /Library/Preferences/Emacs/Preferences.el
 /Library/Preferences/Aquamacs Emacs/Preferences.el
 ~/Library/Preferences/Emacs/Preferences.el
 ~/Library/Preferences/Aquamacs Emacs/Preferences.el

Мой ~/Library/Preferences/Aquamacs Emacs/Preferences.el похож (по умолчанию):

 (load "~/.emacs")

Таким образом, это действительно не имеет смысла мне...

5
задан 13.09.2010, 12:44

5 ответов

У меня была та же проблема при выбирании цвета точки. Затем я нашел файл customizations.el, изменил настройки строки цвет точки там, и все хорошо работало. Я не знаю, будет ли Ваш файл на том же месте, но мой был найден здесь:

/Users/viviannevilar/Library/Preferences/Aquamacs Emacs/customizations.el

3
ответ дан 07.12.2019, 17:02

Хорошо. Это - то, что я сделал в конце. Главным образом я "импортировал" поверхности в настройки Aquamacs путем выполнения:

  • Запущенный Aquamacs, как обычно,
  • Даже если поверхность определяется в .emacs, она проигнорирована Aquamacs
  • Открытый .emacs буферизуется
  • Вручную выбранный раздел поверхности и оцененный
  • Опции-> Появление-> Автоматические Поверхности-> Автоматические Поверхности (ВКЛЮЧЕНЫ)
  • Опции-> Появление-> Автоматические Поверхности-> Применяют Поверхность некоторого режима-> текст
  • Опции-> Появление-> Автоматические Поверхности-> Принимают Поверхность и Структурируют Параметры как Значение по умолчанию Поверхности
  • Опции-> Сохраняют Опции
  • Удалите поверхности из .emacs

Все хорошо работает после перезапуска Aquamacs. Стон.

Благодаря любому здесь.

3
ответ дан 07.12.2019, 17:02

В зарубке ненавидит программное обеспечение: Aquamacs "Emacs", Nick нашел, что пользовательские поверхности набора работали в Emacs, но не в Aquamacs.

Поскольку Nick сделал, Вы могли бы также попробовать свой код пользовательских поверхностей набора в окне взаимодействия Lisp, будучи осторожными как относительно его проблемы ^J (который является вне моего уровня экспертных знаний в Lisp).

При использовании имени шрифта можно проверить, что Aquamacs понимает это при помощи emacs -fn fontname. В случае ошибки просто перестали работать пользовательские поверхности набора, и Emacs затем продолжает использовать шрифт, который он использовал бы иначе.

2
ответ дан 07.12.2019, 17:02

Полная последовательность запуска Emacs документируется в сводный раздел Запуска руководства Lisp Emacs. Это руководство не документирует Aquamacs-определенные расширения.

В комментарии Вы упоминаете что, делая Ваши настройки от term-setup-hook' still doesn't work. So what overrides them is either inрычаг установки окна' или на Aquamacs-определенном шаге.

Aquamacs имеет некоторую определенную настройку для поверхностей, которые могут переопределять Ваши настройки, сделанные через стандартный механизм Emacs. Они могут быть выключены включением (aquamacs-autoface-mode 0) в Вашем .emacs или через меню “Options / Appearance / Auto Faces / Auto Faces”.

Wiki Emacs имеет некоторую информацию о том, чтобы заставлять Aquamacs вести себя как другой Emacsen.

2
ответ дан 07.12.2019, 17:02

Для получения информации о .emacs файле и поиске и устранении неисправностей, см. эту статью emacswiki.org.

См. также эту статью, Файл Init, ~/.emacs, для возможных конфликтов.

От того, Почему не делает этого [установка терминальной или оконной системы] кодирует работу в моем .emacs 'файл, но это работает просто великолепно после того, как Emacs запускает:

Во время запуска Emacs инициализирует себя согласно данному распоряжению кода/файла. Если часть кода, выполненного в Вашем .emacs 'файл, должна быть отложена, пока первоначальный код установки терминальной или оконной системы не был выполнен, но не, то Вы испытаете эту проблему (этот порядок выполнения кода/файла не осуществляется после запуска).

Для отсрочки выполнения кода Lisp Emacs до окончания установки терминальной или оконной системы рассматривайте код как список лямбды и установите значение или переменной рычага установки термина или рычага установки окна к этой функции лямбды. Например,

(add-hook 'term-setup-hook
          (lambda ()
           (when (string-match "\\`vt220" (or (getenv "TERM") ""))
             ;; Make vt220's "Do" key behave like M-x:
             (global-set-key [do] 'execute-extended-command))))
1
ответ дан 07.12.2019, 17:02

Теги

Похожие вопросы