zstyle ':omz:plugins:nvm' lazy yes
https://github.com/lukechilds/zsh-nvm?tab=readme-ov-file#laz...
Additionally, a lot of functionality which I wanted wasn’t there in OMZ, so my setup had a lot of custom bits anyway.
My zshrc, for reference: https://git.sr.ht/~whynothugo/dotfiles/tree/269248912920d25e...
DISABLE_AUTO_UPDATE="true"
WTF? Even if we ignore the crime of non-critical software updating itself, the fact that it does it on every start instead of every day or week is insane.I do not want my shell sending network requests to odd servers without explicit action from me, thanks.
Learn your tools first, not bloated frameworks. There's a gulf of difference between vanilla zsh and this:
>Community-driven (with 2,400+ contributors) framework for managing your zsh configuration
>Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc)
>140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community
I still think it's bad. You shouldn't rely on a million different package managers, just 1 is enough. (2 if you are feeling spicy: Flatpak)
So half the users are using OMZ with a bloated slow config and the other half are reinventing new config managers every year because of how terrible OMZ has become. And constantly churning through them as they keep getting abandoned.
I've been happily using zsh4humans for years but will need to find a replacement at some point as it's now going unmaintained too.
I miss simple things like alias when I temporary want to assign long commands to a shorter alias.
I can't get used to the atrocious keyboard shortcuts but I have gotten used to the "non-UK UK keyboard layout".
And zsh. I honestly don't know why I didn't just brew install bash right from the start. Without even realising I was doing it, I fought with this bloated bastard for 2 months before finally asking what the fuck I was doing.
I sped up my shell by switching back to bash.
Chances are, like in the article, you installed oh-my-zsh, a third party configuration framework.
zsh doesn't need configuration frameworks or plugins. All it needs is a change in the default settings so that its powerful completion works out the box. It currently needs more than ideal amount of tweaks to the defaults, which is probably why people flock to these frameworks.
As an SRE, at my day job I often need to copy/paste commands that are generated from a playbook.
Our playbooks use Bash, and in practice Zsh is compatible. But a co-worker using fish often has to manually modify commands before running, and I'm not about that life.
The problem with fish is mostly the different syntax for setting variables and lack of heredocs. Sometimes the string substitution differences come up too.
I think auto suggestions and syntax highlighting plugins can be installed separately from oh-my-zsh.
I use starship for a better prompt, and it works on more shells than just Zsh.
I also have Atuin installed to share history across machines, and as a benefit the history search is a lot more powerful.
https://github.com/zsh-users/zsh-autosuggestions
I wonder why ghost text history suggestions are popular though, I'd rather not have it. Shell history search works better, and I don't want my shell always showing me or whoever else is looking at the screen random commands that I've previously typed.
I use it and never had any issue. Am I missing out on something?
Some of the autocompletion settings set by oh-my-zsh are useful. But apart from that, the majority of the code consists of gazillions of random aliases and functions that someone else needed. It pollutes the command namespace for no good reason except maybe making users more wary of typos. The last time I checked, sudo was aliased as "please", and I can't find a single reason why that'd be useful.
oh-my-zsh also introduces a lot of churn, which is why it has autoupdates. Autoupdates. The only time I needed to change my configuration in vanilla zsh because of a change in zsh was once or maybe twice over a span of 10+ years.
Things like git branch name and virtual envs are handled by starship.
My custom config is less than 10 lines now:
export HISTSIZE=1000000000
export SAVEHIST=$HISTSIZE
setopt EXTENDED_HISTORY
setopt autocd
autoload -U compinit; compinit
source <(fzf --zsh)
eval "$(starship init zsh)"
set -o vi
srvmshr•4h ago
[Not the best hackjob out there but here it is:
https://github.com/gradientwolf/leanzsh
If you want to update it just copy over the latest `plugin/` folder from OMZ repo. You can get rid of all the plugins you dont want, as well as the themes. It somehow works]
SamDc73•4h ago
I did try to do my whole zsh config/theme from scratch, but it did take some time and lot of small features here and there were no worth the effort (like python version, vevn, and such) so I just switched to starship which is very fast and easy to use
lompad•2h ago
To me personally, oh-my-zsh and similar projects feel like a worse version of the stuff fish brings by default.
Jubijub•2h ago
ewuhic•1h ago
MillironX•2h ago
My own usage: https://code.millironx.com/millironx/nix-dotfiles/src/commit...