5 ms·
You answered your own question when you said "over time I've customized". The appeal of oh-my-zsh and others is that it removes the "over time" part of the equa
by davis 11y ago
You answered your own question when you said "over time I've customized". The appeal of oh-my-zsh and others is that it removes the "over time" part of the equation.
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.
- enjo 11y agoTo piggy-back onto this: 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.
- kbd 11y ago> 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. 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.
- jacobolus 11y agoActually ⌥← / ⌥→ to move by words is a feature built into the Cocoa text system. It will work in any standard text box in any OS X app. You can also use ⌥⌫ to delete by words. Other default key bindings: http://www.hcs.harvard.edu/~jrus/site/system-bindings.html http://www.hcs.harvard.edu/~jrus/site/system-bindings.html
- kbd 11y ago> is a feature built into the Cocoa text system 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 :)
- roddds 11y agoCould you share the relevant part of your config and some rough instructions on how to set it up? I just got my first mac a few days ago and I'm tearing my hair out here.
- steveax 11y agoI think oh-my-zsh is the best of both worlds. If you don't like to fiddle, it has sensible defaults and if you do, you can write and load your own plugins and themes easily. There is a rich collection of plugins and themes that you can enable by choice - and customize as desired. I've been known to fiddle with things like this and I've learned tons about what's possible and how to customize my shell by looking at the oh-my-zsh source. Worth mentioning the fish shell [1] which takes a different approach and tries to "work out of the box" with things most people want. [1]: https://fishshell.com/ https://fishshell.com/
- ams6110 11y agoI'm with you. I use the default shell (bash for linux) and don't change it much. I might tweak the prompt a little and add a few aliases and environment variables but that's about the limit of it. 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.
- kbd 11y ago> The main reason is that I tend to work on a lot of servers... 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?
- zo1 11y agoWe keep common profile configs for remote servers in our source code repository. It helps immensely having common aliases and stuff across multiple servers, from dev boxes to production ones.
- rat87 11y agoI think being useful is better then being consistent. Also with git clone from github it's easy to copy settings on any non too security sensitive boxes.
- opk 11y agoIt is possible to adapt fairly easily between different setups. I've got a fairly advanced zsh setup but do a lot of admin on a mix of Linux, Solaris and BSD where I have to put up with whatever the defaults are. I resisted vim for a long time for similar reasons: when doing admin, I often only had vi. When I finally took the plunge and learnt how to make effective use of vim-specific features I regretted not having done it long before. And I can still manage fine on a bare install of Solaris with vi.