6 ms·
I know this has been asked thousands times before, but I want to know with this latest release, should I switch from Bash to Zsh now? What features do Zsh offer
by riobard 14y ago
I know this has been asked thousands times before, but I want to know with this latest release, should I switch from Bash to Zsh now? What features do Zsh offer which are not in Bash?
Currently I'm thinking about the Fish-style syntax highlighting. Fish is really nice, but it's not very compatible with the rest of the shell environment. So I'm back on Bash, but really miss the syntax highlighting. I need some good reasons to switch again...
- braindead_in 14y agoI switched solely for the reason Zsh has command substring search. It's a huge timesaver for some who spends more than 50% of time on the terminal.
- qznc 14y agoCtrl-R in bash?
- ComputerGuru 14y agoNo, substring searches. Ctrl+R in bash (by default, at least) will not search from the middle of a command. For instance, if the previous command was "hello", searching for "ello" will not bring it up. Whereas with zsh, it will.
- rcfox 14y agoI wish there were ido-style searching, where typing "slstr" would match "some long string". (Provided, of course, there were no other strings that were a closer match.)
- tome 14y agoI switched to zsh a couple of years ago, and I wish I'd never even started with bash! It's one of the few app changes I've made where I unequivocally regret not having made it sooner (the other notable one is sawfish -> xmonad -- make of that what you will!)
- hesselink 14y agoBut the OP asked why, not if, he should switch.
- greyfade 14y agoCompletion in Zsh alone made it worthwhile for me. The completion scripts for Zsh are worlds more powerful and complete than anything I've found for Bash. And, there's even a script that offers Fish-like syntax coloring for Zsh: https://github.com/zsh-users/zsh-syntax-highlighting/ https://github.com/zsh-users/zsh-syntax-highlighting/ But not having used Fish yet myself, I can't really offer any reasons to use Zsh over Fish.
- Produce 14y ago>I can't really offer any reasons to use Zsh over Fish. Bash script compatibility, bigger userbase and therefore more third party customizations.
- paul-woolcock 14y agoDefinitely this. I switched to Fish for a while and was very happy, but the lack of Bash compatibility got a very old after a while. You never think about how much out there assumes you have a sh/bash-compatible shell running, and watching ordinary tasks fail hard because of an incompatible shell gets very, very frustrating.
- jamie_ca 14y agoI've been using fish exclusively for about 2 years, and the only thing I really missed was smart tab-completing multiple directories, like cd l/a/t/b<tab> completing to Library/Application\ Support/TextMate/Bundles even if there's another top-level directory starting with L. Fish's consistent syntax for conditionals/loops is what brought me over in the first place, I always needed to work to remember what goes where in zsh/bash. For one-off tasks the reduction in mental overhead was a _huge_ win. That said, I recently did switch back to zsh for a functional command-not-found handler - fish's only includes the name of the binary rather than the whole command, so I couldn't productively use it as a retry wrapper.
- syncopate 14y agoMy favorite feature is that zsh offers vi mode when editing your commandline, just press ESC.
- Afal 14y agoThe problem I have with zsh is that I don't really notice any benefits from it after switching from bash or whatever. I guess my problem is that I'm still using it like bash, which probably isn't a bad thing but I'm probably missing out on the other features it has. Thing is there's no real feature I've noticed that made me think "Wow! How did I live without this?". Yeah I see some nice things but they feel like party tricks rather than game changing features. I dunno, maybe I'm not seeing the big picture here. Is there anything out there that'll show what amazing things that zsh can do? Like is there anything out there that could make me stop using it like bash?
- gsa 14y agoMy favourite feature is shared command line history among all open shells. It was my "how I lived without that" feature, and one which I use a lot. Of course, it's only useful if you use the shell for extended periods. The glob features are certainly quite useful too, for example, if there's a file nested deep inside some directory I can just enter vim **/filename and zsh will expand it for me.
- chasingtheflow 14y agoYou may want to look at https://github.com/robbyrussell/oh-my-zsh https://github.com/robbyrussell/oh-my-zsh
- Afal 14y agoErm.. ok? If you don't mind me asking, why would I want to look at that? I can't really tell what it can do for me other than "make zsh more awesome". How? How does it make it more awesome?
- srathbun 14y agoI switched because of the massive control over the prompt. I've currently got a three line prompt that includes info about my current repository: (git)[45afc8f02fef U master [origin/master ] ] It lists type (git/hg) [checkout (U)pdated branch [remote branch] ]. It'll tell you how many branches different the remote is, what you are up to (staged), and colors. That, better tab completion, and syntax highlighting of the command line are my killer features. I'm running a fork of the oh-my-zsh project, so you can see the features by grabbing a copy: https://github.com/srathbun/oh-my-zsh https://github.com/srathbun/oh-my-zsh
- tammer 14y agoI know it seems like a big jump, but once you've gotten the swing of things you'll wonder why you ever bothered worrying. Don't worry about learning all the benefits at once. Make your shell look exactly like what you've got now and figure out the new features as you go along. There'll always be something new to make you smile.
- zapman449 14y agoPeople have mentioned syntax-highlighting, which is cool, and I'll be checking it out shortly. But MY favorite feature of zsh is ZLE: the Zsh Line Editor. The fact that I hit up-arrow, and see the for|while|if statements as I typed them, rather than mashed together into a horrible, semi-colon infected, one-liner (like bash) is awesome.
- thebillywayne 14y agoIf I understand your problem with bash correctly, it can be remedied using `shopt -s cmdhist` and `shopt -s lithist`. I commonly write long for loops in the shell and hitting the up arrow to bring it back up, should I want to edit it, etc., then it appears with all the newlines just as I typed it. http://www.delorie.com/gnu/docs/bash/bashref_108.html http://www.delorie.com/gnu/docs/bash/bashref_108.html