4 ms·
Yeah, zsh is great. IMHO Oh-my-zsh is the place to start, for those curious about its capabilities.
by chrisweekly 5y ago
Yeah, zsh is great. IMHO Oh-my-zsh is the place to start, for those curious about its capabilities.
- oynqr 5y agoI sure love it when my shell takes seconds to load on startup.
- kimbernator 5y agoIt is easy to go overboard with oh my zsh for sure, but startup time, as long as it's less than ~5 seconds, is not likely to be a big problem for most people. On slower machines the real killer is the time it takes for the next prompt to appear after each command. There are mitigations, but I've definitely had machines where it is almost unbearable.
- nemetroid 5y agoFive seconds really is unusably slow, in my opinion. Even a tenth of that is grating. If I want to run a one-off command, I open a new terminal to do so, and close it when I’m done.
- animal_spirits 5y agoMy pretty extensively customized zsh config with ohmyzsh takes maybe a quarter of a second to load... Maybe I don't have as customized config as I thought because if it is taking a second or more I can't imagine what is being loaded.
- deleted 5y ago[deleted]
- sgarland 5y ago~/.zshrc:L1:"zmodload zsh/zprof" ~/.zshrc:EOF:"zprof" Doesn't take long to track down the culprits. nvm is a huge contributor to startup lag, IME. I am not a frontend dev, and rarely have to touch Node, so I comment out anything nvm-related for daily work.
- eyelidlessness 5y agoFor folks who use nvm and find it slow, try out Volta[1]. It’s much faster, and IMO a lot nicer to use in general. 1: https://volta.sh/ https://volta.sh/
- rustyminnow 5y agoNvm startup times are the worst. I use it to install npm versions, but then manually add those to my $PATH. There's a --no-use flag that short-circuits all the heavy startup processing, but still gives you access to the command. Here's a snippet from my zshrc: ``` export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" --no-use export PATH="$HOME/.nvm/versions/node/v14.17.6/bin:$PATH" ```
- krinchan 5y agoI just use nodenv via anyenv. All the ${X}vm utilities have massive startup lag for some reason.
- nerdponx 5y agoYet another NVM alternative is FNM, which is very fast. I'm surprised there are so many others!
- chrisweekly 5y agoI agree nvm is suboptimal. I've been doing web-related things for a living since 1998 and I care about tooling. YMMV but I have a strong preference for managing node versions via `n` (installed via tiny util `n-install`). My Node-related macOS terminal setup: - iTerm.app - zsh (via brew) - n-install -> n -> node (/npm) - yarn (via npm i -g) - pnpm ("") HTH! :)
- vlunkr 5y agoI hear this argument from zsh purists all the time, I'm pretty sure it's made up. I've used oh-my-zsh for years with several plugins and the startup time is basically imperceptible. Maybe it's slow if you're running on raspberry pi or something.
- soraminazuki 5y agoNot a raspberry pi but a Macbook.
- smoldesu 5y agoYeah, I can't quite comprehend what makes the terminal experience on MacOS feel so sluggish. At first I thought I was being spoiled by Alacritty, but even Konsole feels more responsive than iTerm these days.
- chx 5y agoomz is very very heavy weight. Back when there was a freenode and #zsh it was widely hated as only IRC can hate something. You can source https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md https://github.com/zsh-users/zsh-autosuggestions/blob/master... https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md https://github.com/zsh-users/zsh-syntax-highlighting/blob/ma... without omz anyways.
- _huayra_ 5y agoYes it is incredibly heavyweight, but it's very batteries-included in its approach, which helps zsh newbies get started. For those who want to shed the heavyweight omz stuff, I recommend zplug [0] [0] https://github.com/zplug/zplug https://github.com/zplug/zplug
- krinchan 5y agoOr zgenom[0]. Or if you want to get ESPECIALLY froggy and async with your shell startup, zinit[1]. I ran zinit for years before moving to zgenom. A large swath of electron apps use some weird NPM library to “resolve” your shell environment by kicking up a full interactive shell and then reading the environment variables out of it. zinit messed with that and would hang a lot because of all it’s async loading. [0] https://github.com/jandamm/zgenom https://github.com/jandamm/zgenom [1] https://github.com/zdharma/zinit https://github.com/zdharma/zinit
- lprd 5y agoAvoid oh-my-zsh like the plague if you value performance...
- sqqqqrly 5y agoHere's a nickel kid. Buy a real computer.