50.4.1 Init File Syntax

The init file contains one or more Lisp expressions. Each of these consists of a function name followed by arguments, all surrounded by parentheses. For example, (setq fill-column 60) calls the function setq to set the variable fill-column (see Filling Text) to 60.

You can set any Lisp variable with setq, but with certain variables setq won’t do what you probably want in the init file. Some variables automatically become buffer-local when set with setq; what you want in the init file is to set the default value, using setq-default. (The following section has examples of both of these methods.)

Some customizable minor mode variables do special things to enable the mode when you set them with Customize, but ordinary setq won’t do that; to enable the mode in your init file, call the minor mode command. Finally, a few customizable user options are initialized in complex ways, and these have to be set either via the customize interface (see Customization), or by using customize-set-variable/setopt (see Examining and Setting Variables).

The second argument to setq is an expression for the new value of the variable. This can be a constant, a variable, or a function call expression. In the init file, constants are used most of the time. They can be:

Numbers:

Numbers are written in decimal, with an optional initial minus sign.

Strings:

Lisp string syntax is the same as C string syntax with a few extra features. Use a double-quote character to begin and end a string constant.

In a string, you can include newlines and special characters literally. But often it is cleaner to use backslash sequences for them: ‘\n’ for newline, ‘\b’ for backspace, ‘\r’ for carriage return, ‘\t’ for tab, ‘\f’ for formfeed (control-L), ‘\e’ for escape, ‘\\’ for a backslash, ‘\"’ for a double-quote, or ‘\ooo’ for the character whose octal code is ooo. Backslash and double-quote are the only characters for which backslash sequences are mandatory.

\C-’ can be used as a prefix for a control character, as in ‘\C-s’ for ASCII control-S, and ‘\M-’ can be used as a prefix for a Meta character, as in ‘\M-a’ for Meta-A or ‘\M-\C-a’ for Ctrl-Meta-A.

See Non-ASCII Characters in Init Files, for information about including non-ASCII in your init file.

Characters:

Lisp character constant syntax consists of a ‘?’ followed by either a character or an escape sequence starting with ‘\’. Examples: ?x, ?\n, ?\", ?\). Note that strings and characters are not interchangeable in Lisp; some contexts require one and some contexts require the other.

See Non-ASCII Characters in Init Files, for information about binding commands to keys which send non-ASCII characters.

True:

t stands for “true”.

False:

nil stands for “false”.

Other Lisp objects:

Write a single-quote (') followed by the Lisp object you want.

For more information on the Emacs Lisp syntax, see Introduction in The Emacs Lisp Reference Manual.