Fish "just works", and you won't have any lag. It is a delightful beginner experience, too.
A Zsh veteran could probably replicate parts of the Fish experience in Zsh, but ultimately they are different tools. I use Fish at home for casual shell stuff, but I write shell scripts in Zsh, and I use Zsh at work whenever possible.
Functions should be on fpath, zcompile'd, and loaded with autoload. Otherwise you have to read and parse 100s of lines of code every shell invocation... yikes.
I think it had to do bass not working though, so the plugin didn't work. Now that I'm on NixOS I might give it another shot.
fisher add FabioAntunes/fish-nvm
worked for me!one thing I have noticed is, some packages (I can't remember which, perhaps it was virtualenvwrapper?) come with tools which work with bash or zsh. I have rarely seen fish being mentioned.
edit: it was gcloud sdk and it added command line completions:
# The next line enables shell command completion for gcloud.
if [ -f /Users/avi/code/google-cloud-sdk/completion.zsh.inc ]; then
source '/Users/avi/code/google-cloud-sdk/completion.zsh.inc'
fi