How do I delete/remove a shell function?
In Zsh:
unfunction z
That's another (arguably better) name for unhash -f z
or unset -f z
and is consistent with the rest of the family of:
unset
unhash
unalias
unlimit
unsetopt
When in doubt with such things, type un<tab>
to see the complete list.
(Slightly related: It's also nice to have functions/aliases like realiases
, refunctions
, resetopts
, reenv
, etc to "re-source
" respective files, if you've separated/grouped them as such.)
unset -f z
Will unset the function named z. A couple people have answered with:
unset z
but if you have a function and a variable named z only the variable will be unset, not the function.