funced - edit a function interactively




funced provides an interface to edit the definition of the function NAME.

If the $VISUAL environment variable is set, it will be used as the program to edit the function. If $VISUAL is unset but $EDITOR is set, that will be used. Otherwise, a built-in editor will be used. Note that to enter a literal newline using the built-in editor you should press Alt+Enter. Pressing Enter signals that you are done editing the function. This does not apply to an external editor like emacs or vim.

funced will try to edit the original file that a function is defined in, which might include variable definitions or helper functions as well. If changes cannot be saved to the original file, a copy will be created in the user’s function directory.

If there is no function called NAME, a new function will be created with the specified name.

-e command or --editor command

Open the function body inside the text editor given by the command (for example, -e vi). The special command fish will use the built-in editor (same as specifying -i).

-i or --interactive

Force opening the function body in the built-in editor even if $VISUAL or $EDITOR is defined.

-s or --save

Automatically save the function after successfully editing it.

-h or --help

Displays help about using this command.


Say you want to modify your prompt.


>_ funced fish_prompt

This will open up your editor, allowing you to modify the function. When you’re done, save and quit. Fish will reload the function, so you should see the changes right away.

When you’re done, use:

>_ funcsave fish_prompt

For more, see funcsave.