This is the biggest change:<p>> <a href="http://fishshell.com/release_notes.html" rel="nofollow">http://fishshell.com/release_notes.html</a><p>> When tab-completing a file, fish will first attempt prefix matches (foo matches foobar), then substring matches (ooba matches foobar), and lastly subsequence matches (fbr matches foobar). For example, in a directory with files foo1.txt, foo2.txt, foo3.txt…, you can type only the numeric part and hit tab to fill in the rest.<p>This is really brilliant! I always wanted that (without knowing it).
With love: I always felt like fish and even zsh are kind of beautiful OCD-induced bouts of counter productivity in the same vain as Dvorak keyboard layouts and Plan 9. We can't handle things being messy and imperfect so we solve it by building our own parallel universes.<p>What do you do when you have to use a computer without your customization? Perfect is the enemy of good, worse is better, join us on the dark side, all that jazz. :)<p>Is fish really really REALLY worth it?
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.
I tried fish for a while but found it jarring switching between it and bash when working on remote machines where fish is not installed. I was also surprised when I first started using fish that it can't synchronize history between shell instances, which is a killer feature for me. So after about a month with fish I've switched to zsh.<p><a href="https://github.com/fish-shell/fish-shell/issues/825" rel="nofollow">https://github.com/fish-shell/fish-shell/issues/825</a><p><a href="http://ptspts.blogspot.com/2011/03/how-to-automatically-synchronize-shell.html" rel="nofollow">http://ptspts.blogspot.com/2011/03/how-to-automatically-sync...</a>
<p><pre><code> "Previously, a single % would pid-expand to either all
backgrounded jobs, or all jobs owned by your user. Now it
expands to the last job backgrounded. If no job is in the
background, it will fail to expand. In particular, fg %
can be used to put the most recent background job in the
foreground."
</code></pre>
oh! Can fish background tasks now? I haven't being following very closely, I really should update my shell.
I just re-installed Fish this morning. One of the first things I install when I have a fresh install on a workstation :D<p>The thing I appreciate most about fish is the clever suggestions from my shell history - the simplest things can be the biggest time-savers when it comes to entering obscure commands a few weeks apart (I don't have to look them up each time I do it now)
I've been using Fish for a year now, it's really amazing. Not going back to bash or even zsh.<p>The only problem I had was getting all vim plugins to work with it, but then I discovered that you can set the shell vim shall use in .vimrc (I set it to sh) and now everything works like a charm.<p>BTW, I'm loving the fuzzy autocompletion, it's truly a "killing feature".
I just had an argument with some folks around Bash vs Fish, my argument was as simple as "i like it", their was "you won't learn anything, fish sucks, you can do anything it does with a modded bash" ... but that's the point, i don't want to modify and configure, i want it to work out of the box.
Maybe it's just because I really like to customize my shell, but I can't stand the philosophy of fish [1]. The relevant part: "Configurability is the root of all evil." I can almost agree with this on many user facing consumer applications but a shell is so far from that.<p>[1]: <a href="http://ridiculousfish.com/shell/user_doc/html/design.html#conf" rel="nofollow">http://ridiculousfish.com/shell/user_doc/html/design.html#co...</a>
I installed 2.1 via homebrew and now, every time I open a new terminal window, I get:<p><pre><code> bind: Key with name 'dc' does not have any mapping
bind: Key with name 'ppage' does not have any mapping
bind: Key with name 'npage' does not have any mapping
</code></pre>
Does anybody have any idea what causes this / how to fix it?
For those who want to give fish a spin, it might be worth checking out the guide I wrote on the topic:<p><a href="http://hackercodex.com/guide/install-fish-shell-mac-ubuntu/" rel="nofollow">http://hackercodex.com/guide/install-fish-shell-mac-ubuntu/</a><p>I'll soon have it updated for fish 2.1.0, Mavericks, and the new PPA locations.
They also have a PPA now[1]. I'm pretty sure I looked a few months ago, when 2.0 hit, and it wasn't available.<p>[1] <a href="http://fishshell.com/files/2.1.0/linux/index.html#dl-ubuntu12.04" rel="nofollow">http://fishshell.com/files/2.1.0/linux/index.html#dl-ubuntu1...</a>
As a systems engineer, I'm stuck using (mostly) vanilla bash. I'd love to dabble in fish or zsh, but anytime I start it becomes a waste of time.<p>Upside is I know bash ins and outs :). I'm usually the one-liner wizard of the office.
I have used fish for a few months and I really liked it. I switched back to bash eventually because of a simple fact that esc-. didn't work in fish (which I use really often). If fish provides it, I will go back to fish.
I am currently running fish version 2.0.0 (Love it btw!) - does anyone know if there is a way to manually self update to 2.1? Or do I need to reinstall the package.
The great thing is, author provided all platform installer.
Ubuntu, Debian, Centos, Fedora, even readhat 5,6 and so on.
So great for people lazy to compile by themselves for trying little software.
Good job! I up-voted you!