Artigo original: Jazz Up Your “ZSH” Terminal In Seven Steps — A Visual Guide

Neste artigo, tratarei da instalação do ITerm2, do ZSH shell, do "oh my ZSH", do Themes, dos esquemas de cores do ITerm2, dos plug-ins do "oh my ZSH" e sobre como habilitar o suporte à "ligadura tipográfica" para ajudar a criar um terminal lindo e poderoso.

Observação: se quiser simplesmente tornar seu Terminal do Bash poderoso, dê uma olhada no meu artigo anterior: "Jazz Up Your Bash Terminal" ("Turbine seu terminal do bash", em inglês). Porém, o ZSH explicado neste artigo é mais poderoso ainda.

Sumário:

Trataremos de muita coisa. Isso pode acabar confuso, então deixo aqui um sumário do que faremos.

  1. Instalar o ITerm2 — Ele é uma alternativa melhor ao Terminal padrão
  2. Instalar o shell do ZSH mais recente — Ele é mais poderoso do que o shell do bash padrão. Faremos com que o ITerm2 use o shell do ZSH.
  3. Instalar o "Oh My ZSH" — Esta é uma ferramenta de CLI para configurar facilmente o ZSH e adicionar temas e plug-ins ao ZSH
  4. Adicionar dois tipos de temas usando o "Oh My ZSH" — alguns temas precisam de etapas adicionais, por isso trataremos de ambos
  5. Instalar esquemas diferentes do ITerm2 — Estes são apenas esquemas de cores para a UI
  6. Adicionar dois plug-ins diferentes usando o "Oh My ZSH" para melhorara produtividade
  7. Ativar o suporte à "ligadura tipográfica" para quando, por exemplo, você escrever uma seta =>, ela se pareça de fato com uma seta →
1_k3akUSSgJsBjjzMkAAN9tQ

Etapa 1— Instalar o ITerm2

Vários programadores preferem o ITerm2 ao Terminal padrão. Ele é parecido com o Terminal, mas tem vários recursos próprios. Ele, logicamente, pode rodar o ZSH, o Bash e outros shells dentro dele.

Para este artigo, usaremos o ITerm2. Quando eu mencionar “Terminal”, pense sempre no ITerm2, embora os passos sejam os mesmos para os dois.

Etapa 2 — Alterar o Shell para o ZSH

Opção 1 — Usar o ZSH do próprio Mac:

O Mac vem com um ZSH de fábrica. Assim, nem é preciso instalá-lo. No entanto, em algumas situações, ele é uma versão antiga do ZSH. Tipicamente, ele está localizado em /bin/zsh. Para usá-lo, tudo o que é preciso fazer é mudar o shell (com o comando chsh).

  1. Abra o Terminal (ou o ITerm2) e digite o seguinte comando.
$ chsh -s $(which zsh)

2. Insira a senha e ele mudará o shell, depois de sair e fazer o login novamente.

3. Saia e faça o login novamente.

4. Para testar, abra o Terminal e digite o seguinte (o resultado deve ser zsh):

$ echo $0
zsh //o retorno deve ser 'zsh'

Opção 2— Instalar o Homebrew e a versão mais recente do ZSH pelo Homebrew

Essa é uma opção bem comum entre os usuários, pois alguns dos plug-ins só funcionam com a versão mais recente do ZSH.

O Homebrew, dito de modo simplificado, é um instalador de linha de comando para todos os tipos de software. Vamos instalá-lo primeiro.

  1. Instale o Homebrew executando o comando a seguir.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. Se você receber o erro "Command Line Tools for Xcode", significa que você não instalou as ferramentas de CLI para o Xcode. Se não receber esse erro, pode pular essa etapa, pois elas já estão instaladas.

As ferramentas de CLI de desenvolvedor do XCode são usadas por vários apps que manipulam recursos centrais do OSX. Assim, não se esqueça de instalar as ferramentas de CLI do Xcode CLI executando o comando abaixo.

$ xcode-select —-install

Observação: esse comando abrirá o instalador do Mac e instalará as ferramentas de CLI de desenvolvedor do XCode. Se não funcionar, experimente xcode-select -r para reiniciar.

3. Instale o ZSH pelo Homebrew

Execute o seguinte comando para instalar o ZSH. Ele é instalado em /usr/local/bin/zsh

Importante: o ZSH padrão do Mac está em /bin/zsh

brew install zsh

4. Use a versão do Homebrew do ZSH

Execute o seguinte comando. Será pedido que você insira a senha do Mac.

chsh -s /usr/local/bin/zsh

5. Saia e faça o login novamente.

6. Teste se está usando o ZSH e se o ZSH é o correto

$ echo $0
zsh   //correto

$ which zsh
/usr/local/bin/zsh   //correto

Etapa 3 — "Oh My ZSH"

1_Sk54-oKGwIS_3BRk1S4N7A--1-

O "Oh My ZSH" é um plug-in que roda sobre o ZSH. Ele fornece a configuração padrão para o ZSH (arquivo ~/.zhrc), além de temas e mais recursos.

Até onde eu sei, a maioria dos power users que utilizam o ZSH também usam o "Oh My ZSH".
  1. Instale o "Oh My ZSH"

Execute o comando a seguir para instalar o "oh My ZSH".

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
1_9X_r8cgGVOIwS8PiPZnS7A
Oh My ZSH instalado

2. Feche e saia do ITerm2 e reabra-o.

Ele deve estar com a aparência similar ao que vemos abaixo. Observe que o prompt mudou e que o tema é um pouco diferente — Esse é o "Oh My ZSH" em ação para você.

1_8Ot5gJq4R_iCXJqlkDPGow
Tema inicial do Oh My ZSH

Etapa 4 — Alterar os temas e instalar as fontes

Nesta etapa, adicionaremos temas diferentes do "Oh My ZSH". O "Oh My ZSH" vem com milhares de temas. Alguns temas, no entanto, precisam de etapas adicionais, como instalar certas fontes e assim por diante.

Para definir um tema, simplesmente abra o arquivo ~/.zshrc (criado pelo "Oh My ZSH") e altere o tema conforme mostramos abaixo.

Observação: o .zshrc é o arquivo de configuração para o shell do ZSH. Aqueles que não usam o "Oh My ZSH" terão que criar manualmente este arquivo e adicionar as configurações por conta própria. O "Oh My ZSH" cria automaticamente este arquivo se ele ainda não existir e adiciona seu próprio conjunto de configurações a esse arquivo.

Tema 1 — Vamos adicionar um tema chamado "Avit"

  1. Abra o .zshrc
$ open ~/.zshrc

2. Altere o tema para o "Avit"

Você pode visualizar todos os temas do "Oh My ZSH" aqui. Para mudar o tema, altere o valor de ZSH_THEME no arquivo ~/.zshrc de robbyrussell para Avit.

1_yzCfQpf-7oVs3SPelf1Imw

3. Atualize a configuração do ZSH

Execute o seguinte comando para atualizar a configuração.

$ source ~/.zshrc
1_jdA_I2AykgRqAKTRVSY3Eg
Seu prompt de comando no tema Avit

4. Altere a cor de fundo e o tamanho da fonte

Abra ITerm2 > Preferences > Profiles > Colors e mude a cor de fundo de Black para 20% Gray, conforme vemos abaixo.

1_NjFS-nVNi0O8lDSoHLUleg
Use o fundo 20% Gray

Em seguida, abra Text > Change Font e altere o tamanho para 14pt.

1_8rl1Nc5oqqtd7RSjzo8K4w
Altere a fonte para 14pt
1_CjzxD0L9jyqK0bp5zLB8lg
Um Iterm2 lindo e limpo com o ZSH!

OK, agora vamos instalar um tema diferente que precisa das fontes.

Tema 2 — Instalar o tema "agnoster" do Oh My ZSH

Este é um tema popular, pois simula o app Powerline do Python, que melhora o terminal. A imagem abaixo dá uma ideia de sua aparência. Este tema, porém, também precisa que instalemos temas do Powerline.

1_vLlx2GBxwk1NAOa-eLOCyw
Tema "agnoster" do Oh My ZSH

1. Instale as fontes Powerline

$ git clone https://github.com/powerline/fonts.git
$ cd fonts
$ ./install.sh

2. Altere o tema para o "agnoster"

$ open ~/.zshrc
// Defina ZSH_THEME="agnoster" e salve o arquivo

3. Saia do ITerm2 e abra-o novamente.

4. Defina a fonte Powerline

Você pode definir qualquer fonte Powerline que desejar. Todas elas terminam com "for Powerline".

Abra ITerm2 > Preferences > Profiles > Text > Change Font e defina a fonte como alguma das que tenha o final "for Powerline". Aqui, selecionei a fonte "Meslo LG DZ for Powerline".

1_S9KIZotQcq4dNoBESM0v3w
Fonte Meslo LG DZ for Powerline do Iterm2

Observação: se estiver confuso sobre fontes e temas, os temas são para o "Oh My ZSH" e para o shell do ZSH e as fontes são para o próprio Iterm2.

5. Tudo pronto

Neste momento, seu Terminal deve ter a seguinte aparência:

1_vLlx2GBxwk1NAOa-eLOCyw--1-

Etapa 5 — Instalar os "esquemas de cores" do iTerm2 (temas do ITerm2)

Existem vários esquemas de cores lindos para o iTerm2. Esses esquemas alteram a cor do primeiro plano, a cor de fundo, a cor do cursor e assim por diante. Você pode encontrá-los no repositório iTerm2-color-schemes do Github.

Observação: esses são apenas esquemas de cores para a UI do ITerm2, não mexendo com a aparência geral do prompt de comando, como os temas do "Oh My ZSH" (eles somente alteram as cores).

Siga essas etapas para instalá-los.

  1. Baixe iTerm2-color-schemes como um arquivo zip e extraia-o
  2. A pasta "Schemes" contém todos os arquivos de esquemas de cores — eles terminam com .itermcolors
  3. Abra iTerm2 > Preferences > Profile > Colors > Color Presets > Import
  4. Na janela de importação, navegue até a pasta "Schemes" (do passo 2)
  5. Selecione todos os arquivos para poder importar todos os esquemas de cores ao mesmo tempo
  6. Simplesmente selecione aquele esquema de cores que você preferir.
Meus favoritos são Batman e Argonaut
1_LHZaKiNSSp5PX0RRTS5ITw
Tema Batman do Iterm2

O esquema de cores Argonaut tem a seguinte aparência:

1_yFbKJQbBwNRbtU4dFM2UVA
Esquema de cores Argonaut

Etapa 6 — Instalar plug-ins

Os plug-ins adicionam mais funcionalidades ao seu fluxo de trabalho. Por padrão, o "Oh My ZSH" já tem o plug-in "git"! É por isso que você pode ver todos os status do Git nos prompts nas telas anteriores. Vamos adicionar outro plug-in para ver como funciona.

Observação: nesta seção, instalaremos dois plug-ins diferentes para mostrar como eles funcionam.

Plug-in 1 — Adicionar o plug-in de realce de sintaxe

O plug-in Syntax Highlighting (Realce de sintaxe) adiciona cores lindas aos comandos que você digitar, conforme vemos abaixo.

1_f_RqoUuzWvcVhATPzr2i7A
  1. Faça a clonagem do repositório do plug-in zsh-syntax-highlighting e copie-o para o diretório de plug-ins do "Oh My ZSH".
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

2. Ative o plug-in no arquivo ~/.zshrc adicionando zsh-syntax-highlighting a seção plugins, conforme mostramos abaixo.

1_1sGebsi0qMQMAvPLo64ARQ
Adicione um novo plug-in em uma nova linha dentro da seção "plugins"

3. Faça a releitura a configuração zshrc com "source"

source ~/.zshrc

Plug-in 2 — Adicione o plug-in ZSH-AutoSuggestion

Este plug-in faz a autossugestão de qualquer um dos comandos anteriores. Muito útil! Para selecionar a sugestão, apenas pressione a tecla → .

1_ZiTrbBVUGLWe4OwRL1Ytrg
  1. Instale o plug-in
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
Observação: ZSH_CUSTOM aponta para ~/.oh-my-zsh/custom

2. Abra o arquivo ~/.zshrc e adicione zsh-autosuggestions

1_pshPBacVfZgHaKdlG1cajg

Etapa 7 — Use o suporte à ligadura tipográfica

Há várias fontes que auxiliam a fazer com que os operadores, como menor que, duplo igual, seta para direita, não igual e outros tenham uma bela aparência. Por exemplo, sempre que você digitar =>, ele se tornará →.

1_OIpApVPLobonxDMEkaAbaA
Texto em vermelho: "Com a fonte FiraCode e com o suporte à ligadura tipográfica ativado, !=, ==>, -> e == têm a aparência acima"

Para usar isso, precisamos de fontes que deem suporte a ligaduras tipográficas. Também precisamos habilitar esse recurso no ITerm2. A FiraCode é uma dessas fontes. Siga esses passos para instalar a fonte e habilitar as ligaduras tipográficas.

  1. Baixe o repositório da FiraCode e extraia o arquivo zip (ou faça a clonagem do repositório)
  2. Abra a pasta dstr > ttf e clique duas vezes em todos os arquivos *.ttf e selecione o botão "Install font" para instalar cada uma das variações de fonte.
  3. Navegue até ITerm2 | Preferences | Profiles | Text
  4. Marque a caixa de seleção Use Ligatures
  5. Clique em Change Font e selecione a fonte Fira Code Regular
1_kFynRP_J2Q42WA5TGtPphA

Em resumo

Tratamos de muitas coisas neste artigo, começando da instalação do ZSH mais recente pelo Homebrew, passando pelo Oh My ZSH, plug-ins, temas e ativação das "ligaduras tipográficas" para a fonte FiraCode.

Obrigado!

Outras publicações do autor no Medium e no freeCodeCamp (em inglês)

https://medium.com/@rajaraodv/latest

ECMAScript 2015+

  1. Check out these useful ECMAScript 2015 (ES6) tips and tricks
  2. 5 JavaScript “Bad” Parts That Are Fixed In ES6
  3. Is “Class” In ES6 The New “Bad” Part?

Melhorias do terminal

  1. How to Jazz Up Your Terminal — A Step By Step Guide With Pictures
  2. Jazz Up Your “ZSH” Terminal In Seven Steps — A Visual Guide

WWW

  1. A Fascinating And Messy History Of The Web And JavaScript

Virtual DOM

  1. Inner Workings Of The Virtual DOM

Desempenho do React

  1. Two Quick Ways To Reduce React App’s Size In Production
  2. Using Preact Instead Of React

Programação funcional

  1. JavaScript Is Turing Complete — Explained
  2. Functional Programming In JS — With Practical Examples (Part 1)
  3. Functional Programming In JS — With Practical Examples (Part 2)
  4. Why Redux Need Reducers To Be “Pure Functions”

WebPack

  1. Webpack — The Confusing Parts
  2. Webpack & Hot Module Replacement [HMR] (por debaixo dos panos)
  3. Webpack’s HMR And React-Hot-Loader — The Missing Manual

Draft.js

  1. Why Draft.js And Why You Should Contribute
  2. How Draft.js Represents Rich Text Data

React e Redux:

  1. Step by Step Guide To Building React Redux Apps
  2. A Guide For Building A React Redux CRUD App (app de 3 páginas)
  3. Using Middlewares In React Redux Apps
  4. Adding A Robust Form Validation To React Redux Apps
  5. Securing React Redux Apps With JWT Tokens
  6. Handling Transactional Emails In React Redux Apps
  7. The Anatomy Of A React Redux App
  8. Why Redux Need Reducers To Be “Pure Functions”
  9. Two Quick Ways To Reduce React App’s Size In Production

Se achou este artigo útil, agradeça ao autor ou mande mensagem para ele pelo Twitter para demonstrar seu apoio.

Se tiver perguntas, o autor também encoraja a perguntá-las a ele pelo Twitter: https://twitter.com/rajaraodv