functions(1)

NAME
functions -- print or erase functions

  Synopsis

functions [ -a | --all ] [ -n | --names ]
functions -c OLDNAME NEWNAME
functions -d DESCRIPTION FUNCTION
functions [ -e | -q ] FUNCTIONS...

  Description
functions prints or erases functions.

The following options are available:

•   -a or --all lists all functions, even those whose name start with an underscore.

•   -c OLDNAME NEWNAME or --copy OLDNAME NEWNAME creates a new function named NEWNAME, using the definition of the OLDNAME function.

•   -d DESCRIPTION or --description=DESCRIPTION changes the description of this function.

•   -e or --erase causes the specified functions to be erased.

•   -n or --names lists the names of all defined functions.

•   -q or --query tests if the specified functions exist.

The default behavior of functions, when called with no arguments, is to print the names of all defined functions. Unless the -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 functions -e. Either remove the definition file or change the $fish_function_path variable to remove autoloaded functions.

Copying a function using -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 functions -d.

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

  Examples

functions -n
  Displays a list of currently-defined functions

functions -c foo bar
  Copies the 'foo' function to a new function called 'bar'

functions -e bar
  Erases the function bar