Live data from Hacker News

Zsh 5.0 released

github.com

51–59 of 59 posts

Re: Zsh 5.0 released

#51
post #48

Earlier quoted context omitted.

You may want to look at https://github.com/robbyrussell/oh-my-zsh

Erm.. 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?

The thing I liked about oh-my-zsh when I switched from another shell was that it provided a wide variety of pre-built "plugin" scripts for customizing the shell for various environments/tasks. It's worth a try to just get a tour of some features available in zsh, and have some examples to look at. I don't know enough about either bash or zsh to list out feature-by-feature differences, but if you want a practical, real-world tour of zsh, oh-my-zsh is a good place to start.

Re: Zsh 5.0 released

#52
post #13

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 re…

Completion 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/ But not having used Fish yet myself, I can't really offer any reasons to use Zsh over Fish.

I'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 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.

Re: Zsh 5.0 released

#53
post #41
post #39

Earlier quoted context omitted.

The 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 part…

My 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.

works in bash too, enable it with shopt -s globstar.

Re: Zsh 5.0 released

#54
post #39

Earlier quoted context omitted.

The 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 part…

Besides the awesome TAB completion, here are a few features that I use daily: - Keyboard navigation for TAB completion (using the arrows) - Coloured TAB completion - "for" one-liners: for f in /*.py; wc -l $f - Named directories (cd ~named_dir) (edit: formatting)

This is not an attempt to argue with your feature list. Bash clearly doesn't do some of those. But I just noticed the for one-liners you mentioned. I do that in bash alot actually. This is just fyi for anyone reading, not trying to argue with your feature list.

for f in *.py; do wc -l $f; done

also, you can do something like

for f in `find project_name`; do wc -l $f; done t work on the output of another command.

Cheers!

Re: Zsh 5.0 released

#55
post #13

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 re…

People 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.

Re: Zsh 5.0 released

#56
post #13

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 re…

I 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.

I 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.)

Re: Zsh 5.0 released

#57
post #13

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 re…

People 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.

If 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

Re: Zsh 5.0 released

#58
post #29
post #20

I liked zsh a lot until I found that it would take a long time to cd into certain directories, I think they were ones with large git repositories. Maybe there's some way to shut that off but I went back to bash where I could be sure things would be responsive.

Were you using oh-my-zsh? I have a few patches that speed up its git plugin by letting you opt-out of expensive operations. https://github.com/davvid/oh-my-zsh/commits/davvid Last I checked, oh-my-zsh was in transition to a new version(?), and the pull requests have generally been ignored because of this.

Yes, I was using oh-my-zsh. I'd like to try it again if it's easy to make it non-slow.

Re: Zsh 5.0 released

#59
post #58
post #29

Earlier quoted context omitted.

Were you using oh-my-zsh? I have a few patches that speed up its git plugin by letting you opt-out of expensive operations. https://github.com/davvid/oh-my-zsh/commits/davvid Last I checked, oh-my-zsh was in transition to a new version(?), and the pull requests have generally been ignored because of this.

Yes, I was using oh-my-zsh. I'd like to try it again if it's easy to make it non-slow.

Some of the secret details are in my theme: https://github.com/davvid/oh-my-zsh/blob/davvid/themes/davvi...

    ZSH_THEME_GIT_PROMPT_DIRTY=""
    ZSH_THEME_GIT_PROMPT_CLEAN=""
which lets it avoid expensive checks that my prompt doesn't need (it already shows that info elsewhere).

The real big win is that I export `POST_1_7_2_GIT=1` in `~/.zshrc` and the tweaks I made teach the git plugin to use `--ignore-submodule=dirty` when calling `git status`, which makes a huge difference.

I haven't caught up with oh-my-zsh in a bit; if there's a good place for me to rebase onto and do a new pull request I will. Does anybody know who the real oh-my-zsh maintainer is these days?

Post reply on HN