Another random tip: python virtualenv generates a activate.fish script that you should use instead of the plain activate script.
I actually use this guy: https://github.com/edc/bass
As a developer? I haven't found PowerShell more useful than zsh/bash or fish (if you haven't, try fish, it has a lot of benefits of PowerShell (fish has its own scripting language that is more "language like", like some of the more simple constructs of Python, syntax wise) but via a simple plugin[0] you get bash compatibility too, and its made for Unix like environments). I do like that it has a rich object data model, I just don't do that kind of thing in my shell. I mostly use aliases, shortcuts, and maybe some grepping. I don't do heavy duty tasks from the command line where I'm not writing the logic in the first place, and I just find it easier to use the standard that my team does (currently, this is JavaScript, with the shebang it executes just like a binary. We can reliably say everyone has the same version of node)
Maybe in the future this will change, but I don't see the win to divide my attention economy to it deeply, personally.
Lets you use bash utilities from fish. So you can do things like `source` files and have it work.
Also I prefer to use Fish only as an interactive shell, actual scripts can stay bash.
eval $(ssh-agent)
Sure you can get addons (like bass[0]) that will translate the sh environment variable settings to fish, but it’s a pain to have to do that (and remember wth it was called).Maybe adopt a package manager for plugins too? ;)
shameless plug, but I made a utility to solve the problem: https://github.com/edc/bass
So you can write `bass source /usr/local/bin/virtualenvwrapper.sh ';' mkvirtualenv env1`, which of course can be shortened with a function.