我的 .emacs 中的自定义设置变量和面孔是啥?
Posted
技术标签:
【中文标题】我的 .emacs 中的自定义设置变量和面孔是啥?【英文标题】:what is custom-set-variables and faces in my .emacs?我的 .emacs 中的自定义设置变量和面孔是什么? 【发布时间】:2011-06-30 10:34:17 【问题描述】:这是在我的 .emacs 中,我能不能弄乱它?
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(better-fringes-bitmap ((t (:foreground "#00dd44"))))
'(font-lock-string-face ((((class color) (min-colors 88) (background light)) (:foreground "#113355")))))
到目前为止,我正在将我想要的所有内容添加到这些行之上...
【问题讨论】:
【参考方案1】:正如 Noufal 所指出的,这些块是由 customize
接口添加的。不过,如果您愿意,可以将它们移动到单独的文件中。
只需将此添加到您的~/.emacs.d/init.el
:
(setq custom-file "~/.emacs.d/custom.el")
(load custom-file)
或者,如果您仍在使用 old-fashioned ~/.emacs
文件:
(setq custom-file "~/.custom.el")
(load custom-file)
在任何一种情况下都可以使用的稍微复杂的 sn-p 是:
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file)
【讨论】:
查看this question 了解为什么它被称为老式 “老式的~/.emacs
文件”是什么意思?现在有没有其他方式比使用~/.emacs
更可取?
是的,现在通常有一个~/.emacs.d
目录,其中包含一个init.el
启动文件,其工作方式类似于~/.emacs
。这让你有一个独立的位置来放置你的配置,即使它被分成多个文件,并且安装的 elisp 包也将被放置在该目录中(如果存在)。上面 jan-glx 的评论提供了更多信息的链接。
比起硬编码~/emacs.d/
,我觉得还是用expand-file-name
比较好:(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
@MohammadBanisaeid 总的来说,我同意,但我相信如果你有一个~/.emacs
文件,那么user-emacs-directory
将是~
,所以整体效果不会那么一致/明确.我将编辑答案以反映这一点。【参考方案2】:
不要在这些行中手动添加任何内容——在某些事件中,您的更改将被 emacs 消除。而是使用customize-set-variable
添加自定义变量,使用set-face-attribute
添加自定义面孔:
(customize-set-variable 'blink-cursor-mode nil)
(set-face-attribute 'default nil :family "DejaVu Sans Mono")
为了自定义一些包的面,有时需要先请求包,然后设置它的面:
(require 'mumamo)
(set-face-attribute 'mumamo-background-chunk-major nil :background nil)
【讨论】:
【参考方案3】:这些是在您使用customise 系统时添加到文件中的行。它们是在您使用 customize-*
时生成的。默认情况下,自定义选项存储在.emacs
文件中。您通常不会手动编辑这些内容。您必须使用customize-*
命令来编辑它们。
【讨论】:
以上是关于我的 .emacs 中的自定义设置变量和面孔是啥?的主要内容,如果未能解决你的问题,请参考以下文章