functions - print or erase functions¶
Synopsis¶
functions [-a | --all] [-n | --names]
functions [-D | --details] [-v] FUNCTION
functions -c OLDNAME NEWNAME
functions -d DESCRIPTION FUNCTION
functions [-e | -q] FUNCTION ...
Description¶
functions prints or erases functions.
The following options are available:
- -a or --all
- Lists all functions, even those whose name starts with an underscore. 
- -c or --copy OLDNAME NEWNAME
- Creates a new function named NEWNAME, using the definition of the OLDNAME function. 
- -d or --description DESCRIPTION
- Changes the description of this function. 
- -e or --erase
- Causes the specified functions to be erased. This also means that it is prevented from autoloading in the current session. Use funcsave to remove the saved copy. 
- -D or --details
- Reports the path name where the specified function is defined or could be autoloaded, - stdinif the function was defined interactively or on the command line or by reading standard input, - if the function was created via source, and- n/aif the function isn’t available. (Functions created via alias will return -, because- aliasuses- sourceinternally.) If the --verbose option is also specified then five lines are written:- the pathname as already described, 
- autoloaded,- not-autoloadedor- n/a,
- the line number within the file or zero if not applicable, 
- scope-shadowingif the function shadows the vars in the calling function (the normal case if it wasn’t defined with --no-scope-shadowing), else- no-scope-shadowing, or- n/aif the function isn’t defined,
- the function description minimally escaped so it is a single line, or - n/aif the function isn’t defined or has no description.
 - You should not assume that only five lines will be written since we may add additional information to the output in the future. 
- --no-details
- Turns off function path reporting, so just the definition will be printed. 
- -n or --names
- Lists the names of all defined functions. 
- -q or --query
- Tests if the specified functions exist. 
- -v or --verbose
- Make some output more verbose. 
- -H or --handlers
- Show all event handlers. 
- -t or --handlers-type TYPE
- Show all event handlers matching the given TYPE. 
- -h or --help
- Displays help about using this command. 
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 included in the output.
If any non-option parameters are given, the definition of the specified functions are printed.
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``
See more¶
For more explanation of how functions fit into fish, see Functions.
