Aquamacs переопределяет мои настройки

2297
Roberto Aloi

Я только что установил 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

5 ответов на вопрос

3
Vivi

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

/ Пользователи / viviannevilar / Библиотека / Предпочтения / Aquamacs Emacs / customizations.el

Я уже пробовал, но это не помогло ... :( Roberto Aloi 14 лет назад 0
Вы пытались задать этот вопрос на stackoverflow.com ?? Пользователи Emacs часто "тусуются" там, и я уверен, что кто-то сможет вам помочь .... Vivi 14 лет назад 0
3
Roberto Aloi

Отлично. Это то, что я сделал в конце. В основном я «импортировал» грани в настройки Aquamacs, выполнив:

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

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

Спасибо всем, кто здесь.

2
harrymc

В программе « Ник ненавидит»: Aquamacs «Emacs», Ник обнаружил, что настраиваемые лица работают в Emacs, но не в Aquamacs.

Как и Ник, вы также можете попробовать свой код с пользовательскими наборами в окне взаимодействия с Лиспом, проявляя осторожность в отношении его проблемы ^ J (что выходит за рамки моего уровня знаний в Лиспе).

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

2
Gilles

Полная последовательность запуска Emacs описана в разделе « Сводка запуска» в руководстве по Emacs Lisp . Это руководство не описывает специфичные для Aquamacs расширения.

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

Aquamacs имеет некоторые специфические настройки для граней, которые могут переопределять ваши настройки, выполняемые через стандартный механизм Emacs. Их можно отключить, включив (aquamacs-autoface-mode 0)в них .emacsили через меню «Параметры / Внешний вид / Авто лица / Авто лица».

В вики Emacs есть некоторая информация о том, как заставить Aquamacs вести себя как другие Emacsen .

Я проверил и автофас уже отключен. :( Roberto Aloi 14 лет назад 0
Также я добавил весь блок set-face. Может быть, это может помочь. Roberto Aloi 14 лет назад 0
1
harrymc

Информацию о файле .emacs и устранении неполадок см. В этой статье emacswiki.org .

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

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

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

Чтобы отложить выполнение кода Emacs Lisp до завершения установки терминала или оконной системы, обработайте код как лямбда-список и задайте значение переменной term-setup-hook или window-setup-hook для этой лямбда-функции. Например,

(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)))) 
Спасибо за это. Я обновил вопрос с некоторыми комментариями. Кроме того, я пытался `(add-hook 'term-setup-hook (lambda () MY_OLD_CODE))`, но это не помогло (предполагая, что это был способ, которым это должно было использоваться - я сосу в Лиспе). Roberto Aloi 14 лет назад 0
Я не намного лучше в Lisp, но почему-то я чувствую, что время - это объяснение: опции custom-set-face не читаются в нужное время. harrymc 14 лет назад 0

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