我刚刚在我的 Mac 上安装了 Aquamacs。
我家里有一个 .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")
所以这对我来说真的没有意义......
答案1
我在设置点的颜色时遇到了同样的问题。然后我找到了文件customizations.el,更改了其中设置点颜色的行,一切正常。我不知道你的文件是否在同一个地方,但我的文件在这里:
/用户/viviannevilar/图书馆/首选项/Aquamacs Emacs/customizations.el
答案2
好的。这就是我最后做的。我主要通过以下方式将面部“导入”到 Aquamacs 自定义中:
- 像往常一样启动 Aquamacs
- 即使该面部在 .emacs 中定义,Aquamacs 也会忽略它
- 打开.emacs缓冲
- 手动选择脸部部分并进行评估
- 选项 -> 外观 -> 自动脸部 -> 自动脸部(已启用)
- 选项 -> 外观 -> 自动面部 -> 应用某种模式的面部 -> 文本
- 选项 -> 外观 -> 自动人脸 -> 采用人脸和框架参数作为人脸默认值
- 选项 -> 保存选项
- 从 .emacs 中删除面孔
Aquamacs 重启后一切正常。呻吟。
感谢这里的所有人。
答案3
在nick 讨厌的软件:Aquamacs “Emacs”,Nick 发现 custom-set-faces 在 Emacs 中可以运行,但在 Aquamacs 中却不行。
正如 Nick 所做的那样,您也可以在 Lisp 交互窗口中尝试您的自定义设置面代码,并小心处理他的 ^J 问题(这超出了我在 Lisp 方面的专业水平)。
如果您正在使用字体名称,则可以使用 检查 Aquamacs 是否理解它emacs -fn fontname
。如果发生错误,custom-set-faces 就会失败,然后 Emacs 将继续使用本来要使用的字体。
答案4
有关 .emacs 文件和疑难解答的信息,请参阅此emacswiki.org 文章。
另请参阅本文,初始化文件 ~/.emacs,以防可能发生冲突。
从为什么这个 [终端或窗口系统设置] 代码在我的 .emacs 文件中不起作用,但在 Emacs 启动后却能正常工作:
在启动过程中,Emacs 根据给定的代码/文件顺序进行初始化。如果您的 `.emacs' 文件中的某些代码需要推迟到初始终端或窗口系统设置代码执行后才执行,但实际上并未执行,那么您将遇到此问题(启动后不强制执行此代码/文件执行顺序)。
要将 Emacs Lisp 代码的执行推迟到终端或窗口系统设置之后,请将代码视为 lambda 列表,并将 term-setup-hook 或 window-setup-hook 变量的值设置为此 lambda 函数。例如,
(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))))