It's weird, when I started using oh-my-zsh, everyone complained about its performance but it worked swiftly for me. Now after a year I can see the problem, even though I didn't change anything in the config. It's still acceptable on my desktop, but annoying to use on the server.
Been using oh-my-zsh for years, haven't had a single problem with it. Not sure what's going on where people are having so many problems with it being slow.
Same. I keep fearing something will creep up, considering how much I've heard, but it still works brilliantly, from my new iMac all the way down to my shared host on Webfaction.
What I've mostly noticed with it being slow is anything that might accidentally trigger it trying to ssh to another machine to get an autocomplete list. Since it won't maintain that connection it can cause it to happen multiple times while you're trying to tab complete different pieces. I imagine other similar problems with slow file systems or ones with a lot of latency (nfs?) might cause problems. I haven't noticed it elsewhere so maybe there's something I'm just not hitting.
I found prezto did too many things (replaced mkdir, cp, rm and ls with slightly incompatible wrappers for example). The worst was wrapping diff and make, both of which broke scripts I used.
oh-my-zsh seems from my experience to be less eager to replace built-in functionality (although, I'm not an expert in either).
I write scripts in bash, because most people probably aren't using zsh or have zsh installed. Also, when you feel like losing the magic, you can escape commands by prefixing them with backslash (i.e. \cat vs cat).
Oh god, I still swear at the whole "\rm" thing. I guess it's been a benefit a couple times where I might have deleted something by accident, but considering I mostly work on Git repositories, the inconvenience added by the wrappers is totally not worth it.
It's so bizarre to me that people would look at the base install of essentially dotfiles as canonical and unalterable. Fork Prezto and maintain your own version.
Generally the reason to go with such a kit is so you DO NOT have to do the maintenance... you gain the benefits of the community with little to no effort.
If we were talking about a single file of up to 100 lines or so, I would agree. But presto is huge! I don't want to read the whole thing and decide what bits I do and don't want.
You're really only going after the config files, though. .zpreztorc, and if you don't like some of Sorin's aliases (rm, ls, etc) you can take them out of the utility plugin. I've spent maybe an hour "working" on my fork in the last year.
Prezto and Antigen are the better solutions for ZSH users. Oh-my-zsh has some issues that Antigen addresses and Prezto does things in a different way entirely that's equally good.
OMZ provides opinionated defaults and doesn't expose you to all of the choices that the typical zsh config process does. Which is the exact opposite of the Arch Linux mantra of being aware of every choice that you are making in which software runs on top of the kernel.
I use OMZ mostly because of dotfile inertia. There is some slight weirdness (vaguely remember something about negative/exclusion globs) compared to vanilla zsh, but it isn't bad.
I've been a happy Antigen (https://github.com/zsh-users/antigen) user. It's very fast, regularly updated, and can use OMZ as a plug for when there are features you simply must have.
OMZ was my first adventure into shell config management, but it slowed to the point that my Terminal.app window would take 10-15 seconds to give me a prompt. That became incredibly frustrating.
I love oh-my-zsh but am confused why this is news... it's been around for years, almost everyone I know in OSX either uses it or has used it at some point in the past. I do love it though!
It's a very relevant response to Fish. I used Fish but ran into trouble trying to figure out the syntax for things I knew how to do in bash. zsh (with oh-my-zsh to pick a theme and some plugins) was a nice middle ground with lots of shiny features but with more familiarity.
A lot of people who get started with zsh get overwhelmed with the OMZ addon system and its huge ecosystem.
I wrote a simple but high quality and clearly documented .zshrc which should get anyone interested in zsh started. I like what the OMZ project is doing, but I actually recommend against it - it's slow and frankly unnecessary, as long as you have a good starting base.
Yes, really.
Also really "brew install X".
Also really download some binary and run it.
Do you inspect every line of the source code of the every app you run on your computer?
I don't.
You're missing my point. Piping wget/curl into sh is notoriously dangerous not because of security concerns, but because of the behavior of sh if it only receives a partial script that way (such as would be the case if curl or wget are interrupted for whatever reason, particularly in the event of a network failure mid-download). At least with a package manager like Homebrew or apt-get it'll wait for the download to actually finish before trying to install something (at least on a per-package basis; few package managers actually wait for all packages and their dependencies to be downloaded before installing any of them).
Just because trendy hip tools like brew and RVM encourage this behavior doesn't mean it's actually a good idea.
I use oh-my-zsh on Arch and it takes ages to give me a prompt unless I Ctrl-C. For some reason this only happens the first time I open a terminal after logging on. Haven't got around to digging up the root cause yet.
Note that by using Oh My Zsh, you acknowledge the fact that you're willing to wait for 10 seconds to get a prompt when opening a terminal. Which to my experience can be annoying.
I've never used zsh, so a sophisticated configuration for it would be a blind leap in a random direction, like e.g. Emacs Prelude.
Instead, can anyone recommend good reference documentation about zsh configuration files? Going through all options and deciding how I want them is my preferred approach to configuring new software.
39 comments
[ 3.7 ms ] story [ 89.9 ms ] threadhttps://github.com/sorin-ionescu/prezto
oh-my-zsh seems from my experience to be less eager to replace built-in functionality (although, I'm not an expert in either).
I use OMZ mostly because of dotfile inertia. There is some slight weirdness (vaguely remember something about negative/exclusion globs) compared to vanilla zsh, but it isn't bad.
OMZ was my first adventure into shell config management, but it slowed to the point that my Terminal.app window would take 10-15 seconds to give me a prompt. That became incredibly frustrating.
https://news.ycombinator.com/item?id=9566441
I wrote a simple but high quality and clearly documented .zshrc which should get anyone interested in zsh started. I like what the OMZ project is doing, but I actually recommend against it - it's slow and frankly unnecessary, as long as you have a good starting base.
Available here with screenshot and documentation:
https://github.com/jleclanche/dotfiles
Tsk tsk.
Just because trendy hip tools like brew and RVM encourage this behavior doesn't mean it's actually a good idea.