Over time I've customized my bash config and have all the information I want in my prompt. If I ever switched to zsh I'd just learn how to translate what I have in bash. Why would I want to start with someone's big framework for configuration?
Over time I've customized my bash config and have all the information I want in my prompt. If I ever switched to zsh I'd just learn how to translate what I have in bash. Why would I want to start with someone's big framework for configuration?
It's meant to give you a lot of sensible (think like vim-sensible) defaults as well as the settings that make it feel more like bash yet show the awesome features of zsh.
A lot of people don't like to configure shells. omz gives them a head start and a source of inspiration into features they might not know.
I've never been much of a tools guy. I generally use what the default configuration is for whatever tool I use. It's just never been particularly important to me (and I don't feel like it's made even a small difference in my productivity as a programmer).
Projects like oh-my-zsh are nice because they provide a much richer default that lazy folks like me can use without ever having to know or care about how to actually configure a shell because the alternative is that I just won't do it. I'm not going to take the time to learn about the universe of configuration options. When I'm exposed to a feature it has to be really useful before I'm going to bother to learn about how to configure it. So plugins and the like are huge, they allow me to tailor my environment to the actual work I do with rich functionality that I otherwise wouldn't have.
So for me projects like this are awesome.
Thanks for giving me a different perspective. For me, it bugs me to not know what's built-in vs what's configuration. For example, I recently discovered that option+arrow key to skip back/forward words was an OSX Terminal feature when it didn't work in iTerm2. So I configured it to work how I wanted in my .inputrc and now it should work everywhere.
Starting with the defaults and changing things as you get an itch to scratch seems like a better way to learn long-term, but I can see just wanting use someone's template and be done with it. I guess it's the difference between frameworks and libraries, and between people who use someone's addon pack in World of Warcraft vs just using a few addons and designing their own UI.
Other default key bindings: http://www.hcs.harvard.edu/~jrus/site/system-bindings.html
Well, yes, thanks. So it arguably should have worked in iTerm2 to start with.
In any case, now with the same configuration it'll even work on Linux (I also configured ctrl+left and right to work the same for non-⌥-having keyboards).
And my point remains the same, that I learned what was OSX, what was bash, and what was readline, more about how to configure readline, that you can 'cat' with no arguments and type things to see their escape codes (which is how I got ^[^[[C and ^[^[[D as the codes for ⌥← / ⌥→), that \e is short for the escape part ^[ (though I still don't understand how escape codes work everywhere, more learning to do). All because something didn't work how I wanted. Of course it'd be nice if readline had better defaults too :)
Worth mentioning the fish shell [1] which takes a different approach and tries to "work out of the box" with things most people want.
The main reason is that I tend to work on a lot of servers, and sticking with default settings gives me a consistent unsurprising environment on all of them.
I agree with sticking with bash for that reason, but why not customize that as much as you want since it's easy to scp dotfiles around?
Also with git clone from github it's easy to copy settings on any non too security sensitive boxes.
Edit: to clarify what I mean by the distinction being artificial, I don't see why you couldn't think of the kernel as someone else's configuration for your processor, or zsh itself as someone else's configuration for your terminal window.