Latest 3.1.1 update broke a lot for me (fzf integration under ⌃ + R as one example). How to downgrade? Depends on the answer of the following command:

brew list --versions fish
fish 3.1.0_1 3.1.1

If you see both versions as above, you may just use brew switch

brew switch fish 3.1.0_1

It wasn’t the case for me, so I had to go all in:

brew unlink fish
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/618fcd7b144c0768a01bd4eab8deee960bd86466/Formula/fish.rb

The commit number can be found on either GitHub or from the terminal after cloning homebrew-core:

git log master -- Formula/fish.rb