🚀 Um Guia Prático para Configurar Zsh, Oh My Zsh, asdf e Spaceship Prompt com Zinit para Seu Ambiente de Desenvolvimento
Tags: shell, zsh, terminal, tutorial
Published: 2024-06-21 19:03:22

### **Introdução** 🌟

Melhore seu ambiente de desenvolvimento com este guia sobre como instalar e configurar o **Zsh**, **Oh My Zsh**, **asdf** e o tema **Spaceship Prompt**. Também utilizaremos o **Zinit** para gerenciamento adicional de plugins. Vamos começar!

### 🛠️ **Passo 1: Instalando o Zsh**

O **Zsh** é um shell robusto que proporciona uma experiência de linha de comando poderosa. Veja como instalá-lo:

#### 🐧 **Para Linux (Ubuntu/Debian):**

```bash
sudo apt update
sudo apt install zsh
chsh -s $(which zsh)
```

#### 🍎 **Para macOS:**

O Zsh já vem pré-instalado. Para configurá-lo como seu shell padrão:

```bash
chsh -s /bin/zsh
```

#### 🪟 **Para Windows:**

Use o **WSL (Windows Subsystem for Linux)** ou **Git Bash**. Para WSL:

1. Instale uma distribuição WSL (por exemplo, Ubuntu) na Microsoft Store.
2. Instale o Zsh como faria no Ubuntu.

**Verifique a instalação**:

```bash
zsh --version
```

### ⚙️ **Passo 2: Configurando o Oh My Zsh**

O **Oh My Zsh** simplifica a configuração do Zsh com temas e plugins.

**Instale o Oh My Zsh**:

```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

Este script configurará o Oh My Zsh e mudará seu shell padrão para o Zsh.

**Configure o Oh My Zsh**:

1. Abra seu arquivo `.zshrc`:

    ```bash
    nano ~/.zshrc
    ```

2. **Habilite os plugins**:

    ```bash
    plugins=(git asdf)
    ```

3. **Recarregue sua configuração**:

    ```bash
    source ~/.zshrc
    ```

### 🔄 **Passo 3: Instalando e Configurando o Zinit**

O **Zinit** é um gerenciador de plugins para Zsh, oferecendo um gerenciamento de plugins flexível e rápido.

**Instale o Zinit**:

1. Adicione o trecho de instalação do Zinit ao seu `.zshrc`:

    ```bash
    cat << 'EOF' >> ~/.zshrc

    ### Adicionado pelo instalador do Zinit
    if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
        print -P "%F{33} %F{220}Instalando %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
        command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
        command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
            print -P "%F{33} %F{34}Instalação bem-sucedida.%f%b" || \
            print -P "%F{160} A clonagem falhou.%f%b"
    fi

    source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
    autoload -Uz _zinit
    (( ${+_comps} )) && _comps[zinit]=_zinit

    # Carregue alguns anexos importantes, sem Turbo
    zinit light-mode for \
        zdharma-continuum/zinit-annex-as-monitor \
        zdharma-continuum/zinit-annex-bin-gem-node \
        zdharma-continuum/zinit-annex-patch-dl \
        zdharma-continuum/zinit-annex-rust

    ### Fim do trecho de instalação do Zinit

    EOF
    ```

2. **Fonte seu `.zshrc`**:

    ```bash
    source ~/.zshrc
    ```

### 🔌 **Passo 4: Instalando Plugins Adicionais com Zinit**

Use o Zinit para instalar plugins adicionais e enriquecer sua experiência com o Zsh.

**Instale plugins usando o Zinit**:

1. Abra seu arquivo `.zshrc` e adicione os seguintes comandos de plugin do Zinit:

    ```bash
    nano ~/.zshrc
    ```

2. Adicione essas linhas para instalar e carregar plugins adicionais:

    ```bash
    zinit light zdharma-continuum/fast-syntax-highlighting
    zinit light zsh-users/zsh-autosuggestions
    zinit light zsh-users/zsh-completions
    ```

3. **Salve e recarregue** seu `.zshrc`:

    ```bash
    source ~/.zshrc
    ```

### 📦 **Passo 5: Instalando e Configurando o asdf**

O **asdf** é um gerenciador de versões versátil para várias linguagens.

**Instale o asdf**:

1. Clone o repositório do asdf:

    ```bash
    git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3
    ```

2. Adicione o asdf ao seu `.zshrc`:

    ```bash
    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zshrc
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc
    source ~/.zshrc
    ```

**Instale plugins do asdf**:

1. **Adicione o plugin Node.js**:

    ```bash
    asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
    ```

2. **Instale uma versão específica**:

    ```bash
    asdf install nodejs 16.13.0
    asdf global nodejs 16.13.0
    ```

3. **Adicione o plugin Python**:

    ```bash
    asdf plugin-add python https://github.com/danhper/asdf-python.git
    ```

4. **Instale uma versão específica**:

    ```bash
    asdf install python 3.9.7
    asdf global python 3.9.7
    ```

**Gerenciando versões específicas para projetos**:

Crie um arquivo `.tool-versions` no diretório do seu projeto:

```bash
nodejs 14.17.6
python 3.8.10
```

Execute `asdf install` no diretório do projeto para usar essas versões localmente.

### 🚀 **Passo 6: Configurando o Tema Spaceship Prompt**

O tema **Spaceship Prompt** oferece um prompt elegante e informativo para o Zsh.

**Instale o Spaceship Prompt**:

1. **Clone o repositório Spaceship**:

    ```bash
    git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
    ```

2. **Crie um link simbólico**:

    ```bash
    ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
    ```

3. **Defina o tema no seu `.zshrc`**:

    ```bash
    ZSH_THEME="spaceship"
    ```

**Configure o Spaceship Prompt**:

1. Crie um arquivo de configuração `.spaceshiprc.zsh`:

    ```bash
    nano ~/.spaceshiprc.zsh
    ```

2. Adicione a seguinte configuração:

    ```zsh
    SPACESHIP_USER_SHOW=always
    SPACESHIP_PROMPT_ADD_NEWLINE=false
    SPACESHIP_CHAR_SYMBOL="λ"
    SPACESHIP_CHAR_SUFFIX=" "
    SPACESHIP_PROMPT_ORDER=(
      user          # Seção de nome de usuário
      dir           # Seção de diretório atual
      host          # Seção de nome do host
      git           # Seção do Git (git_branch + git_status)
      package       # Versão do pacote
      node          # Seção do Node.js
      bun           # Seção do Bun
      elixir        # Seção do Elixir
      erlang        # Seção do Erlang
      rust          # Seção do Rust
      docker        # Seção do Docker
      docker_compose # Seção do Docker Compose
      terraform     # Seção do Terraform
      exec_time     # Tempo de execução
      line_sep      # Quebra de linha
      jobs          # Indicador de trabalhos em segundo plano
      exit_code     # Seção de código de saída
      char          # Caractere do prompt
    )
    ```

3. **Fonte sua configuração** no `.zshrc`:

    ```bash
    echo "source ~/.spaceshiprc.zsh" >> ~/.zshrc
    source ~/.zshrc


    ```

### 🔠 **Passo 7: Adicionando uma Nerd Font para o Spaceship Prompt**

Para melhorar a aparência do seu terminal com ícones e glifos adicionais, instale uma **Nerd Font**.

**Instale uma Nerd Font**:

1. Vá para o [repositório do Nerd Fonts no GitHub](https://github.com/ryanoasis/nerd-fonts) e baixe uma fonte de sua preferência, como **Hack** ou **Roboto Mono**.
2. Siga as instruções de instalação para o seu sistema operacional.

**Configure o Emulador de Terminal**:

1. Abra as preferências/configurações do seu emulador de terminal.
2. Selecione a Nerd Font instalada (por exemplo, Hack Nerd Font ou Roboto Mono Nerd Font) como a fonte para o seu terminal.

**Atualize sua Configuração do Zsh**:

1. Abra o arquivo `.zshrc`:

    ```bash
    nano ~/.zshrc
    ```

2. Atualize o `SPACESHIP_CHAR_SYMBOL` para usar um ícone da Nerd Font (por exemplo, `` para Hack Nerd Font ou `` para Roboto Mono Nerd Font):

    ```bash
    SPACESHIP_CHAR_SYMBOL="" # Use o símbolo da Nerd Font apropriado aqui
    ```

3. **Salve e feche** o arquivo.

**Fonte sua configuração**:

```bash
source ~/.zshrc
```

### 🔧 **Passo 8: Outras Configurações Úteis para Zsh**

**Personalize a História do Comando**:

Armazene mais histórico e compartilhe entre sessões:

```bash
HISTSIZE=10000
SAVEHIST=10000
setopt share_history
```

**Habilite Correções Automáticas**:

Habilite correções para erros comuns de digitação:

```bash
setopt correct
```

### 🎉 **Conclusão**

Agora você configurou um ambiente de desenvolvimento robusto e visualmente atraente com **Zsh**, **Oh My Zsh**, **asdf** e o tema **Spaceship Prompt**, usando **Zinit** para plugins adicionais. Esta configuração melhorará seu fluxo de trabalho e facilitará o gerenciamento de vários projetos. Feliz codificação!

---

**Leitura Adicional** 📚:

- [Plugins do Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins)
- [Documentação do asdf](https://asdf-vm.com/)
- [Spaceship Prompt no GitHub](https://github.com/spaceship-prompt/spaceship-prompt)
- [Documentação do Zinit](https://zdharma-continuum.github.io/zinit/wiki/)
- [Guia do Usuário do Zsh](http://zsh.sourceforge.net/Doc/Release/)

---

<p align="center"><em>Este artigo foi criado e personalizado com a ajuda do ChatGPT.</em> 🤖💡</p>