4 ms·
I like the idea of fish, but I've had issues with other programs assuming things about my shell. Like vim and I think even other programs. There's something fis
by leokun 13y ago
I like the idea of fish, but I've had issues with other programs assuming things about my shell. Like vim and I think even other programs. There's something fish doesn't do, that other shells like bash and zsh do, that breaks other programs. I can't remember the specifics, but fish breaks stuff for me when I tried it, and I tried it pretty recently.
- IanCal 13y agoAnything I have issues with I simply run under bash. I've had very few problems, and use it on my work machine (where I live in tmux and vim). Edit: I'm running a pre-release of 2.0.0, which I modified to time every command. I was extremely impressed at how simple it was for me to add (not my usual language).
- dz0ny 13y agoExporting environment variables is pain, i don't know why some apps pick env others don. Android sdk is problematic for example, go compiler too.
- izietto 13y agoExporting variables is simple: set -x #{NAME} #{value}; setting Go environment is simple too: set -x GOPATH $HOME/go set -x PATH $GOPATH/bin $PATH
- siteshwar 13y agofish's syntax is not POSIX compliant (because fish tries to simplify syntax), so at times it breaks other programs which depends on POSIX syntax. But you can always find workarounds for those problems. For e.g. see the discussion at https://github.com/fish-shell/fish-shell/issues/921 https://github.com/fish-shell/fish-shell/issues/921 . Let us know your problem and we can help you with migrating.
- chimeracoder 13y agoThere are two problems I've found that prevent me from using fish more: 1. <strike>Fish syntax breaks virtualenv</strike> (Edit: Okay, apparently this isn't actually a problem). 2. Fish does not have the equivalent of 'disown' in bash. This is fine if you exit the parent shell normally, but not if you send SIGKILL, which my window manager (wmii and i3) does.
- vially 13y ago1. Fish syntax breaks virtualenv You might want to try virtualfish [1] [1] - https://github.com/adambrenecki/virtualfish https://github.com/adambrenecki/virtualfish
- siteshwar 13y agoWhat problems are you facing while using virtualenv ? I use fish with virtualenv and everything seems fine.( You need to source activate.fish to activate virtualenv on fish. )
- frewsxcv 13y ago. bin/activate.fish
- reledi 13y agoJust so people know where to find this in case they forget, it's in the header of `env/bin/activate.fish`. # This file must be used with ". bin/activate.fish" from fish (http://fishshell.org)* http://fishshell.org)*
- adisbladis 13y agoYes, fish is not bourne shell compatible and never will be. Fish is as the name (Friendly Interactive SHell) suggests an interactive shell. You should just set vim/emacs/whatever to use a bourne-compatible shell. It's one line of vim config: set shell=/bin/sh
- splawn 13y agoactually fish works with ansi-term under emacs without issue
- Eiwatah4 13y agoI had similar problems, and found a work around that works great for me: bash is configured as my default shell. So every program that runs my default shell and just assumes it can use POSIX syntax, gets what it wants (even though it should really just use /bin/sh). My terminal on the other hand is configured to ignore my default shell and run fish instead. I also have a line in my .bash_profile (meaning it only runs for login shells) that checks whether it's running in a virtual terminal and in that case exec's fish in a new tmux (because tmux is a terminal emulator, which means that any bash instances within it won't know they are in a virtual terminal and behave like a normal bash).
- desireco42 13y agoThank you, this is really good strategy, I had similar reservations about fish and I think this both makes sense and resolves them.
- daniel02216 13y agoFor vim at least you can put 'set shell=bash' in your .vimrc and it will use bash instead.