# Easy Zsh Setup One-command zsh environment: oh-my-zsh, powerlevel10k, and a curated plugin set (autosuggestions, syntax-highlighting, completions, history-substring-search, fzf-tab, k), plus eza, zoxide, fzf, and Nerd Fonts. ## Install ```bash curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/install.sh | bash ``` Options: `--cp-hist` / `-c` imports bash history; `--non-interactive` / `-n` skips the default-shell change. The installer backs up an existing `~/.zshrc` and `~/.zshenv` before replacing them. ## Personal configuration `~/.zshrc` is meant to stay close to this repo's canonical version. Put your own tweaks in `~/.config/zshrc/` instead of editing `~/.zshrc` directly: every `*.zsh` file there is sourced near the end of `~/.zshrc`, just before oh-my-zsh loads, so it can add plugins and override defaults. ```bash # ~/.config/zshrc/my.zsh plugins+=(zsh-nvm) # add plugins plugins=(${plugins:#zsh-autosuggestions}) # or remove one alias gs='git status' ``` Ready-made configs from this repo's `zshrc/` directory (`fnm`, `nvm`, `pyenv`, `merlin_devbox`, `merlin_worker`, `personal`, `p10k`) can be pulled in by name: ```bash curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- fnm pyenv ``` Because these files load before oh-my-zsh, plugin and theme changes take effect; aliases that must beat oh-my-zsh's own should be defined after oh-my-zsh loads (see the note in `~/.zshrc`).