\section functions functions - print or erase functions

\subsection function-synopsis Synopsis
<pre>functions [-n]
functions -c OLDNAME NEWNAME
functions -d DESCRIPTION FUNCTION
functions [-eq] FUNCTIONS...</pre>

\subsection functions-description Description

\c functions prints or erases functions.

The following options are available:

- <code>-a</code> or <code>--all</code> lists all functions, even those whose name start with an underscore.
- <code>-c OLDNAME NEWNAME</code> or <code>--copy OLDNAME NEWNAME</code> creates a new function named NEWNAME, using the definition of the OLDNAME function.
- <code>-d DESCRIPTION</code> or <code>--description=DESCRIPTION</code> changes the description of this function.
- <code>-e</code> or <code>--erase</code> causes the specified functions to be erased.
- <code>-h</code> or <code>--help</code> displays a help message and exits.
- <code>-n</code> or <code>--names</code> lists the names of all defined functions.
- <code>-q</code> or <code>--query</code> tests if the specified functions exist.

The default behavior of <code>functions</code>, when called with no arguments,
is to print the names of all defined functions. Unless the \c -a option is
given, no functions starting with underscores are not included in the output.

If any non-option parameters are given, the definition of the specified
functions are printed.

Automatically loaded functions cannot be removed using <code>functions
-e</code>. Either remove the definition file or change the
$fish_function_path variable to remove autoloaded functions.

Copying a function using \c -c copies only the body of the function, and
does not attach any event notifications from the original function.

Only one function's description can be changed in a single invocation
of <code>functions -d</code>.

The exit status of \c functions is the number of functions
specified in the argument list that do not exist, which can be used in
concert with the \c -q option.

\subsection functions-example Examples

<code>functions -n</code> displays a list of currently-defined functions.

<code>functions -c foo bar</code> copies the \c foo function to a new function called
<code>bar</code>.

<code>functions -e bar</code> erases the function <code>bar</code>.
