Aquamacs anula minhas opções de custom-set-faces

5

Acabei de instalar o Aquamacs no meu Mac.

Eu tenho um arquivo .emacs em minha casa, que contém todas as minhas personalizações. Entre estes, eu tenho:

(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")))))

Este bloco parece não ser aplicado automaticamente.

Se eu selecionar as linhas do .emacs e avaliá-las manualmente, tudo funcionará bem. Meu palpite é que essas opções são anuladas em algum outro lugar.

Como posso depurar isso? Onde devo definir minhas faces personalizadas?

ATUALIZAÇÃO:

De acordo com este , as preferências devem ser carregadas na seguinte ordem:

 ~/.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

Meu ~/Library/Preferences/Aquamacs Emacs/Preferences.el se parece com (por padrão):

 (load "~/.emacs")

Então isso não faz sentido para mim ...

    
por Roberto Aloi 16.06.2010 / 11:00

5 respostas

3

Eu tive o mesmo problema ao definir a cor do ponto. Então eu encontrei o arquivo customizations.el, mudei a linha definindo a cor do ponto lá, e tudo funcionou bem. Não sei se seu arquivo estará no mesmo lugar, mas o meu foi encontrado aqui:

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

    
por 19.06.2010 / 02:35
3

Tudo bem. Isso foi o que eu fiz no final. Principalmente eu "importei" os rostos para as personalizações do Aquamacs fazendo:

  • Começou Aquamacs como de costume
  • Mesmo se o rosto estiver definido no .emacs, ele será ignorado pelos Aquamacs
  • abriu o .emacs em buffer
  • Selecionou manualmente a seção de rosto e avaliou
  • Opções - > Aparência - > Auto Faces - > Auto Faces (ENABLED)
  • Opções - > Aparência - > Auto Faces - > Aplicar Face de algum modo - > Texto
  • Opções - > Aparência - > Auto Faces - > Adote parâmetros de face e frame como padrão de face
  • Opções - > Salvar Opções
  • Remover os rostos de .emacs

Tudo funciona bem depois que o Aquamacs é reiniciado. Gemido.

Obrigado a todos aqui.

    
por 15.09.2010 / 17:57
2

Em nick odeia software: Aquamacs "Emacs" , Nick descobriu que o custom- set-faces trabalhavam no Emacs, mas não no Aquamacs.

Como o Nick fez, você também pode tentar o seu código customizado na janela Lisp, tendo cuidado com o problema do ^ J (que está além do meu nível de conhecimento no Lisp).

Se você estiver usando um nome de fonte, verifique se o Aquamacs o entende usando emacs -fn fontname . Em caso de erro, as faces de conjuntos customizados simplesmente falharão e o Emacs continuará usando a fonte que teria usado de outra forma.

    
por 08.09.2010 / 19:20
2

A sequência de inicialização completa do Emacs está documentada na seção Resumo de inicialização do Emacs Manual de Lisp . Este manual não documenta extensões específicas do Aquamacs.

Em um comentário, você menciona que fez as personalizações de term-setup-hook' still doesn't work. So what overrides them is either in window-setup-hook 'ou em uma etapa específica do Aquamacs.

Aquamacs tem alguma personalização específica para rostos que podem estar substituindo suas personalizações feitas através do mecanismo padrão do Emacs. Eles podem ser desativados incluindo (aquamacs-autoface-mode 0) no seu .emacs ou através do menu “ Opções / Aparência / Auto Faces / Auto Faces ”.

O wiki do Emacs tem algumas informações sobre fazendo os Aquamacs se comportarem como os outros Emacsen .

    
por 11.09.2010 / 12:04
1

Para informações sobre o arquivo .emacs e solução de problemas, consulte este artigo do emacswiki.org .

Veja também este artigo, O arquivo de inicialização, ~ / .emacs , para possíveis conflitos.

De Por que este código [terminal ou sistema de janelas] não é exibido? funciona no meu arquivo '.emacs', mas funciona muito bem depois que o Emacs é iniciado :

During startup, Emacs initializes itself according to a given code/file order. If some of the code executed in your '.emacs' file needs to be postponed until the initial terminal or window-system setup code has been executed but is not, then you will experience this problem (this code/file execution order is not enforced after startup).

To postpone the execution of Emacs Lisp code until after terminal or window-system setup, treat the code as a lambda list and set the value of either the term-setup-hook or window-setup-hook variable to this lambda function. For example,

(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))))
    
por 08.09.2010 / 12:17