How to do command substitution in fish shell?

How would a command like this have to be expressed in fish?

ls -l $(which vim)

In fish, $ is used only for variable expansion. Omit the $ from the command and you should be good. Say:

ls -l (which vim)

You might also want to refer to the documentation: Command Substitutions