Autoloading = Lazy loading
It searches through any dirs in the list variable $fish_function_path
, for a file with name that consists the func name + suffix .fish
and loads the 1st file it finds (remember, 1st)
The file (whole file, not just 1 func) will ONLY be loaded when you execute a function with the same name as that file.
These funcs are loaded on-demand, that means they're loaded only when needed. Since Fish don't know about the funcs that have the event (the event handlers) until they're loaded, Fish can't serve them.
=> Don't use funcsave
command, these funcs should be stored in configuration file like ~/.config/fish/config.fish
or ~/.config/fish/conf.d/
dir.