# funcsave - save the definition of a function to the user’s autoload directory

## Synopsis

    funcsave FUNCTION_NAME
    funcsave [-q | --quiet] [(-d | --directory) DIR] FUNCTION_NAME

## Description

`funcsave` saves a function to a file in the fish configuration directory. This function will be automatically loaded by current and future fish sessions. This can be useful to commit functions created interactively for permanent use.

If you have erased a function using functions’s `--erase` option, `funcsave` will remove the saved function definition.

Because fish loads functions on-demand, saved functions cannot serve as event handlers until they are run or otherwise sourced. To activate an event handler for every new shell, add the function to the configuration file instead of using `funcsave`.

This is often used after funced, which opens the function in `$EDITOR` or `$VISUAL` and loads it into the current session afterwards.