The indentation pattern for a Lisp expression can depend on the function called by the expression. For each Lisp function, you can choose among several predefined patterns of indentation, or define an arbitrary one with a Lisp program.
The standard pattern of indentation is as follows: the second line of the expression is indented under the first argument, if that is on the same line as the beginning of the expression; otherwise, the second line is indented underneath the function name. Each following line is indented under the previous line whose nesting depth is the same.
If the variable
lisp-indent-offset is non-
nil, it overrides
the usual indentation pattern for the second line of an expression, so that
such lines are always indented
lisp-indent-offset more columns than
the containing list.
Certain functions override the standard pattern. Functions whose
names start with
def treat the second lines as the start of
a body, by indenting the second line
additional columns beyond the open-parenthesis that starts the
You can override the standard pattern in various ways for individual
functions, according to the
lisp-indent-function property of
the function name. This is normally done for macro definitions, using
declare construct. See Defining Macros in The
Emacs Lisp Reference Manual.
In Emacs Lisp, lists are usually indented as if they are function-like forms:
(setq foo '(bar zot gazonk))
However, if you add a space after the opening parenthesis, this tells Emacs that it’s a data list instead of a piece of code, and Emacs will then indent it like this:
(setq foo '( bar zot gazonk))