我的 .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 中的自定义设置变量和面孔是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 tuareg-mode emacs 中指定注释文件的自定义路径?

启动 emacs 时覆盖 .emacs 配置

如何对 .emacs.d 目录中的所有内容进行字节编译?

汇编代码的自定义缩进功能

如何在emacs上设置班次快捷方式

17类的自定义属性访问及动态属性设置