Oh My Zsh: Melhorando a produtividade do seu terminal


Oh My Zsh é uma estrutura agradável, de código aberto e orientada pela comunidade para gerenciar sua configuração do Zsh (terminal feito para uso iterativo). Ele vem com milhares de funções úteis, ajudantes, plugins, temas e algumas coisas que fazem você gritar... "Oh My ZSH!"

São mais de 250 plugins opcionais para melhorar a usabilidade do terminal e mais de 125 temas.

Pré-requisitos
  • Sistema operacional baseado no Unix (macOS or Linux)
  • curl ou wget devem estar instalados
  • git deve estar instalado
Instalando o ZSH
A primeira coisa a se fazer é instalar o ZSH, um framework para o seu terminal que irá deixá-lo mais interativo.

Como existem várias formas de instalação dependendo do sistema operacional que você está, leia esse guia de instalação: https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH

Após a instalação do ZSH, você conseguirá ver a sua versão no terminal:
zsh --version

Instalando o Oh my Zsh
Para instalar o Oh My Zsh você precisa executar o comando abaixo:

Utilizando o curl
sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Utilizando o wget
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

Após rodar o comando de instalação você verá algo parecido com a imagem abaixo:

Se não aparecer a mensagem “Shell changed.” logo antes da logo como na tela acima, pode ser que o script não tenha conseguido alterar seu shell ou talvez tivesse um erro na senha; nesse caso, basta você mesmo alterá-lo:
sudo usermod --shell $(which zsh) $USER
Após rodar esse comando provavelmente vocÊ terá que reiniciar seu computador.

A partir de agora todas configurações que você quer fazer como adicionar variáveis ambientes ou configurar seu terminal de qualquer forma utilize o arquivo ~/.zshrc e não mais o ~/.bash_profile ou derivados.

Agora reiniciando seu terminal você deve ter algo diferente do convencional, parecido com isso:

Nesse momento já podemos personalizar o nosso terminal para deixá-lo mais produtivo.

Plugins
Por padrão o Oh my Zsh já vem com alguns plugins pré-instalados bastando apenas ativá-los. Você pode ver todos esses plugins no diretório ~/.oh-my-zsh/plugins

Iremos fazer a ativação de alguns e para isso teremos que alterar o arquivo ~/.zshrc

Primeiro rode o comando abaixo para poder editar o arquivo:
sudo nano ~/.zshrc

Agora vá até a linha plugins=(git) e adicione os novos plugins. No meu caso eu adicionei vários plugins, ficando assim:
plugins=(git asdf pyenv httpie node npx npm python go pip vscode yarn pylint pyenv docker docker-compose django ionic aws github gitignore)

Toda alteração que você fizer nesse arquivo, elas só serão válidas quando você abrir um novo terminal.

Além dos plugins já pré-instalados você pode também instalar plugins de terceiros. Iremos instalar 3 plugins para melhorar ainda mais a nossa produtividade.

Existe um utilitário para o Oh My Zsh chamado zinit que facilita a instalação dos plugins. Nos exemplos abaixo não iremos utilizá-lo, mais fica ai a dica.

1°) zsh-syntax-highlighting: basicamente vai deixar o comando verde se tiver sido digitado corretamente, ou do contrário, vermelho. E ao digitar um caminho, ele ficará sublinhado caso o arquivo/diretório existir.

Primeiramente faça a sua instalação:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Para ativá-lo adicione zsh-syntax-highlighting na linha de plugins do arquivo .zshrc como mostrado anteriormente.

Comando inválido na cor vermelha e válido na cor verde

2°) zsh-autosuggestions: irá sugerir comandos baseados no histórico de execução conforme você vai digitando;

Primeiramente faça a sua instalação:
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
Para ativá-lo adicione zsh-autosuggestions na linha de plugins do arquivo .zshrc como mostrado anteriormente.


3°) fzf: um fuzzy finder (buscador de arquivos e comandos) direto no terminal.

Primeiramente faça a sua instalação:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf & ~/.fzf/install
Lembre-se de responder “y” para as questões que serão feitas!

Basta digitar uma parte do nome do arquivo que você pretende pesquisar e precionar as teclas CTRL T que a busca será feita no diretório e você poderá selecionar o arquivo desejado.

Para você poder procurar os comandos que foram digitados no seu terminal, basta precionar as teclas CTRL R.


Temas
Os temas no Oh My Zsh é uma forma de você personalizar seu terminal. Existe vários temas e você pode conferir aqui.

Para alterar o tema, você deve acessar o arquivo ~/.zshrc e alterar a linha ZSH_THEME="robbyrussell" para o tema que você preferir.

Iremos instalar o tema SpaceShip que irá ficar parecido com a imagem abaixo.


Primeiro iremos instalar a fonte FiraCode que possui diversos ícones dos quais são utilizados no tema spaceship.

No ubuntu basta executar o comando:
sudo apt update & sudo apt install fonts-firacode

Você pode conferir os comandos para instalação em outros sistemas linux nesse link. Após a instalação altera a fonte do seu terminal para a Fira Code Retina.

Agora iremos instalar o tema executando o comando abaixo:
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

O próximo passo é criar um link simbólico para o arquivo do tema do Spaceship na pasta dos temas do Oh My Zsh:
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Agora dentro do arquivo ~/.zshrc vamos alterar a variável ZSH_THEME ficando dessa forma:
ZSH_THEME="spaceship"

E no final do arquivo ~/.zshrc iremos adicionar o seguinte conteúdo:
# Adjusts theme SpaceShip
SPACESHIP_PROMPT_ORDER=(
  user          # Username section
  dir           # Current directory section
  host          # Hostname section
  git           # Git section (git_branch + git_status)
  hg            # Mercurial section (hg_branch  + hg_status)
  exec_time     # Execution time
  line_sep      # Line break
  vi_mode       # Vi-mode indicator
  jobs          # Background jobs indicator
  exit_code     # Exit code section
  char          # Prompt character
)
SPACESHIP_USER_SHOW=always
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_CHAR_SYMBOL="❯"
SPACESHIP_CHAR_SUFFIX=" "

Criando apelidos para comandos
Com o Oh My Zsh é possível criar apelidos para os comandos de terminal. Dessa forma você pode encurtar comandos grandes por comandos menores.

No arquivo ~/.zshrc procure pela linha "# Example aliases" e adicione o comando abaixo:
alias zshconfig="sudo nano ~/.zshrc"

Deve ficar parecido com está imagem
Pronto agora abra novamente seu terminal e digite zshconfig e perceba que o arquivo de configuração do zsh será aberto.

Alterando terminal do VSCode
Com o vscode aberto precione simultaneamente as teclas CTRL SHIFT P e procure por Open Settings (JSON).

Nesse momento irá abrir um arquivo chamado settings.json e basta apenas adicionar as linhas abaixo:
"terminal.integrated.shell.osx": "/bin/zsh",
"terminal.integrated.shell.linux": "/bin/zsh",

Alterando terminal do PyCharm, Rider, PhpStorm, WebStorm, GoLand, IntelliJ IDEA...
Para isso acesse as configurações da IDE e procure por teminal, normalmente fica em Settings->Tools->Terminal. Em Application Settings altere o campo Shell Path para /bin/zsh

Conclusão
Ao final de tudo o meu arquivo ~/.zshrc ficou dessa forma:

Comentários

Postagens mais visitadas deste blog

asdf-vm: Gerenciador de versão extensível com suporte a várias linguagens e ferramentas de desenvolvimento

PostgreSQL + Docker: Criando uma instância do Postgres com Docker