TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Fish: Finally, a command line shell for the 90s

442 pointsby rjshadealmost 13 years ago

41 comments

llambdaalmost 13 years ago
I've been using the original fish[1] for years. I'm very biased, I love fish for many reasons and despite the claims that zsh can do the same things I've never had cause to switch from it. Now it was quite disappointing to see the original fish project seemingly halted. So this isn't simply great news, in the sense that development has been picked back up in the fishfish fork, some great improvements have been made at the same time!<p><pre><code> * autosuggestion (this actually has a great amount of utility for me. it complements tab-completion quite well!) * optional web-based config (great for quickly editing your config settings) * speed improvements (although I never suffered from much lag with fish to begin with) </code></pre> Overall I think the usability and utility of fish is greatly improved in this fork. Also it's worth pointing out that in terms of out-of-box functionality, some of fishfish features would be very hard to match. Things like autocompletion and simple history scrollback based one partial string matching set fish apart from the pack imo. So far, I'm quite impressed and I hope that more people adopt fishfish as the de facto replacement for fish.<p>[1] <a href="http://fishshell.com/" rel="nofollow">http://fishshell.com/</a>
评论 #4078614 未加载
评论 #4073676 未加载
mhansenalmost 13 years ago
I use fish (<a href="http://fishshell.com/" rel="nofollow">http://fishshell.com/</a>), and it's amazing. However, they're missing the most important feature from their front page: Syntax highlighting!<p>Valid executables are colored green, as you type. Invalid commands are red, as you type. Valid files are underlined, as you type.<p>Like the carpenter who can feels the feedback of the grain of the wood through the handle of his plane can adjust his technique as he planes, fish shell lets me 'feel' the programs and files I'm working with through the shell.<p>And that makes me happy.
评论 #4073261 未加载
评论 #4073320 未加载
ralfdalmost 13 years ago
A bit more context: Ridiculous Fish is an Apple Engineer on the AppKit team. He also has a nice hex editor for the Mac (Hex Fiend) and an interesting programming Blog:<p><a href="http://ridiculousfish.com/blog/" rel="nofollow">http://ridiculousfish.com/blog/</a>
zedshawalmost 13 years ago
Man, I used to use fish. It was great. It was like all the things people eventually make zsh do but in one convenient binary.<p>I think my favorite feature was that history was instantly shared among all your open fish instances.
评论 #4075838 未加载
评论 #4077506 未加载
ch0wnalmost 13 years ago
I didn't get this right from the start, but this is a fork of fish(shell), which has been around for quite a while:<p><a href="http://fishshell.com/" rel="nofollow">http://fishshell.com/</a>
评论 #4074910 未加载
评论 #4073232 未加载
amixalmost 13 years ago
If you run chsh and get error "/usr/local/bin/fish: non-standard shell" simply add /usr/local/bin/fish to /etc/shells. Just to save you a Google search :)
bstpierrealmost 13 years ago
They need to update the slogan? "A command line shell for the 90s" doesn't really draw me in.<p>What I want to know:<p>1. In what specific ways is it better than zsh?<p>2. Is it absolutely, rock-solid stable?
评论 #4073390 未加载
评论 #4073336 未加载
评论 #4074071 未加载
评论 #4076818 未加载
评论 #4073334 未加载
erualmost 13 years ago
I tried fish a few years ago, but stopped for some reason that I can't remember. I will try again, and will either keep using it, or will remember why I stopped in the first place.
评论 #4074038 未加载
busteralmost 13 years ago
Ahhh, finally. I used to use fish for many months, but after i figured that there is no development anymore, i switched back to bash...<p>Now it's time to change to fishfish and decide what's best suited for me! :)<p>edit: Also, i am disappointed that the ASCII-art fish on the frontpage is actually a picture and not ascii :(
egonschielealmost 13 years ago
Very poor support for alias:<p><pre><code> batman@batman ~/D/S/rails&#62; alias foo="cd ~/" fish: Could not expand string '$tmp[2]' /usr/local/share/fish/functions/alias.fish (line 19): set body $tmp[2] ^ in function 'alias', called on standard input, with parameter list 'foo=cd ~/' </code></pre> Makes me wonder what else I'll have to relearn to use fish. Can someone tell me if it's worth the effort?<p>Edit: didn't take me long to find something worse. I defined my aliases as functions, but apparently fish executes all functions when it sources the file? By putting this function in:<p><pre><code> function foo cd ~/ end </code></pre> I was able to send fish into an infinite loop.
评论 #4076842 未加载
评论 #4076191 未加载
评论 #4076803 未加载
评论 #4076198 未加载
gurramanalmost 13 years ago
It gives me great joy every time a new command-line-related project is released (or, as in this case, gets a major update). I will dedicate a few hours of my weekend to take this for a thorough spin!
mapleoinalmost 13 years ago
Looks like the author is trying to replace the old fish (<a href="http://fishshell.com/" rel="nofollow">http://fishshell.com/</a>)<p><i>Welcome to our fork of the fish shell, a command line shell like bash. Its working name is fishfish, but I hope eventually it will just be fish!</i> (<a href="http://ridiculousfish.com/shell/beta.html" rel="nofollow">http://ridiculousfish.com/shell/beta.html</a>)
happyfreudalmost 13 years ago
I really like what I see, but I don't understand their reasoning for leaving out history substitution (see <a href="http://ridiculousfish.com/shell/user_doc/html/faq.html#faq-history" rel="nofollow">http://ridiculousfish.com/shell/user_doc/html/faq.html#faq-h...</a>).<p>Why can't a better interactive history go hand in hand with something like "sudo !!"?
评论 #4073466 未加载
herdrickalmost 13 years ago
Why does xargs under fish not accept {} as a replstr like it does with bash?<p><pre><code> find . | xargs -I {} grep pat {}</code></pre> On OS X fish this gives "xargs: replstr may not be empty" and on Linux fish I get "xargs: command too long". Using % as the replstr for example does work though.
评论 #4076735 未加载
评论 #4076781 未加载
评论 #4075298 未加载
desireco42almost 13 years ago
I just tried it out, I use zsh and don't really look for replacement, but my first impression is that things are much more snappy and significantly faster in fish. I liked how help opened browser, even though I was startled a little bit.
herdrickalmost 13 years ago
Under the known bugs and issues:<p><i>History file should apply some kind of maximum history length</i><p>Fine, but the default needs to be large, like 100MB. Disks are big now. I hope ridiculousfish agrees.
评论 #4077059 未加载
评论 #4075642 未加载
评论 #4076605 未加载
nickprestaalmost 13 years ago
The package doesn't work on Debian testing/unstable/experimental: fish: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by fish)<p>(I am running GLIB 2.13).<p>I tried compiling from source, but I am clearly missing dependencies. So far, I had to install:<p>libncurses5-dev, gettext, xsel, libxt-dev (alternatively, I could use --without-xsel and ignore these last two depends). You may want to add this to the project somewhere.<p>At any rate, I am looking forward to giving this a try.
评论 #4074058 未加载
mrgreenfuralmost 13 years ago
Whoa. Just installed it and it's beautiful. I'm most surprised by fish_config which fires up a webserver to set config information -- awesome, really awesome.
rplntalmost 13 years ago
Unfortunately I can't try this right now, but do suggestions support something like taking only part of the suggestion? I.e. move left/right from cursor into the suggestion instead of writing. Shift+Arrow would work as expected, thus allowing quickly using part of the suggestion and writing the rest out if needed. It seems to be a better solution than deleting things from the end.
amjithalmost 13 years ago
Can you add custom completions? I don't see proper completion for tmux sub-commands or git sub-commands.
评论 #4075136 未加载
Paul_Salmost 13 years ago
This is missing the point of a shell by a mile. Extra features are nice. As an <i>extra</i>. Preferably on top of a rock solid platform that works everywhere, on everything, under any conditions. Same reason your PC boots in 16 bit real mode.<p>I'm quite happy living in the 80s.
评论 #4073662 未加载
评论 #4074755 未加载
pcsanwaldalmost 13 years ago
Hard to tell from docs if fish has vi mode? vi mode is the main thing I love about bash.
评论 #4073595 未加载
amixalmost 13 years ago
When using auto-completion is there a way not to use arrow keys? Especially when completing a match it seems like I need to use the right arrow key. I would prefer not to use arrow keys at all, but use something like CTRL+(HJKL).
评论 #4073671 未加载
评论 #4074173 未加载
scribblemacheralmost 13 years ago
I've never used anything besides bash before. I use a terminal a lot, but don't really do anything fancy so I thought switching would be a waste of time. Reading the features in fish though made me want to give it a whirl.
herdrickalmost 13 years ago
Can you make this work in fish? <a href="http://www.developerzen.com/2011/01/10/show-the-current-git-branch-in-your-command-prompt/" rel="nofollow">http://www.developerzen.com/2011/01/10/show-the-current-git-...</a>
评论 #4076189 未加载
albertzeyeralmost 13 years ago
Doesn't seem to be in Homebrew yet (I mean this fork; the original Fish is there).<p>That brings me to the question: What is different in this fork? Is it worth to use this fork or should I stick to the original?
评论 #4074720 未加载
fersho311almost 13 years ago
How to I remove it? I set fish as default, but I realized that none of my scripts in .bash_profile worked... and it's too much work to rewrite everything again.
shin_laoalmost 13 years ago
I wonder if there is a modern shell with csh like syntax. I know this may sound anal retentive, but I prefer the csh syntax to the sh syntax.
fenpracealmost 13 years ago
I've been used it. I think lazy people will love it.
Idekaalmost 13 years ago
I tried fish some time ago. I thought it was pretty cool, but I didn't end up using it because it lacked Vi(m) key bindings.
nevesalmost 13 years ago
Anyone managed to make it run in cygwin? Bash completion in cygwin makes the shell very slooooow to start.
jameswysealmost 13 years ago
I've installed this on my Mac, love it!
danbmil99almost 13 years ago
Please, some budding genius, get fish to work with Cygwin! Then I can rule the world as fate intends.
rcthompsonalmost 13 years ago
So, is this new fish fully compatible with sh syntax? IIRC the original one was not.
评论 #4075281 未加载
评论 #4074930 未加载
评论 #4074939 未加载
kubovalmost 13 years ago
Is there any possibility to provide vi mode? Like 'set -o vi' in bash.
评论 #4074564 未加载
pnathanalmost 13 years ago
Ahaha. I like the sense of humor.<p>I shall have to give it a try!
xwowsersxalmost 13 years ago
Where's the bash_profile or bashrc equivalent?
评论 #4073608 未加载
sontekalmost 13 years ago
Who doesn't package an RPM? &#62;:|
Indianburger42almost 13 years ago
'cutting edge technology called threads' oh wow
评论 #4075881 未加载
评论 #4075854 未加载
评论 #4075884 未加载
Uchikomaalmost 13 years ago
"Watch out, Netscape Navigator 4.0!"
jmathesalmost 13 years ago
I just tried fish for the first time, and it couldn't do the very first thing I tried to do, which was source my .zshrc. It doesn't have 'export', has some kind of nonstandard syntax for 'alias', and that was enough to get me to give up.<p>Since there are many fish fanboys here, and since it seems like it would be cool if it worked, I'm hoping someone can tell me the simple obvious thing I should have done. Can you help?
评论 #4077112 未加载