what is custom-set-variables and faces in my .emacs?
Asked Answered
C

3

36

this is in my .emacs can I mess with it or not?

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

so far I am adding everything I want above these lines...

Celsacelsius answered 19/2, 2011 at 16:46 Comment(0)
R
17

These are lines added to the file when you use the customise system. They're generated when you use customize-*. By default, the customisation options are stored in the .emacs file. You don't usually edit these by hand. You have to use the customize-* commands to edit them.

Repository answered 19/2, 2011 at 16:51 Comment(0)
C
72

These blocks are added by the customize interface, as Noufal pointed out. You can move them to a separate file, though, if you like.

Just add this to your ~/.emacs.d/init.el:

(setq custom-file "~/.emacs.d/custom.el")
(load custom-file)

or, if you're still using an old-fashioned ~/.emacs file:

(setq custom-file "~/.custom.el")
(load custom-file)

A slightly more complex snippet that will work in either case is:

(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(load custom-file)
Camisole answered 20/2, 2011 at 17:38 Comment(4)
What do you mean by "an old-fashioned ~/.emacs file"? Is there some other way that is preferred to using ~/.emacs now?Boreal
Yes, it's now conventional to have an ~/.emacs.d directory, containing an init.el startup file which works like ~/.emacs. This lets you have a self-contained location in which to put your config even when it's split into multiple files, and installed elisp packages will also get placed in that directory if present. The comment from jan-glx above provides a link to more information.Camisole
Instead of hardcoding ~/emacs.d/, I think it's better to use expand-file-name: (setq custom-file (expand-file-name "custom.el" user-emacs-directory))Teetotum
@MohammadBanisaeid In general, I agree, but I believe that if you have a ~/.emacs file, then user-emacs-directory will be ~, so the overall effect will not be as consistent/explicit. I'll edit the answer to reflect this.Camisole
R
17

These are lines added to the file when you use the customise system. They're generated when you use customize-*. By default, the customisation options are stored in the .emacs file. You don't usually edit these by hand. You have to use the customize-* commands to edit them.

Repository answered 19/2, 2011 at 16:51 Comment(0)
M
12

Don't add anything to these lines manually — your changes will be vanished by emacs on some events. Instead add custom variables with customize-set-variable and custom faces with set-face-attribute:

(customize-set-variable 'blink-cursor-mode nil)
(set-face-attribute 'default nil :family "DejaVu Sans Mono")

In order to customize face of some package one sometimes need to request the package first, and after that set its face:

(require 'mumamo)
(set-face-attribute 'mumamo-background-chunk-major nil :background nil)
Mulholland answered 30/6, 2015 at 10:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.