Um terminal pra chamar de seu
Índice
Hoje em dia, tenho dois ambientes de desenvolvimento, um Ubuntu 18.04 no trabalho e um macOS em casa, ambos configurados da mesma forma para aumentar a minha produtividade. Cheguei a conclusão que digitar menos comandos e ter feedback visual ajudam você a cumprir seus objetivos de maneira mais eficiente e rápida.
Para fazer essas coisas incríveis, vamos precisar mudar o terminal através dos seguintes passos:
- Instalar uma aplicação melhor que a padrão do sistema
- Instalar o zsh, um shell mais completo que o bash
- Instalar o oh-my-zsh, um framework que melhora sua experiência no zsh
- Adicionar alguns super poderes, como auto sugestões e syntax highlighter.
Vamos lá?
A primeira coisa a se fazer, é trocar o app de terminal padrão
Ubuntu
O Terminator é um excelente e leve app a ser usado no lugar do terminal padrão.
sudo add-apt-repository ppa:gnome-terminator/nightly-gtk3
sudo apt-get update
sudo apt-get install terminator
Mac
O iTerm pode ser baixado e instalado via .dmg ou via Brew . Sugiro que instale o Brew no seu Mac, pra facilitar a instalação de outros apps, assim como o snap ou apt do Ubuntu.
brew cask install iterm2
O próximo passo é ter um shell customizável
Após ter um app melhor, é hora de instalar o zsh, uma ferramenta melhor que o bash.
Zsh é um shell que também pode ser usado como um poderoso intérprete de linguagem de script. É parecido com o bash padrão, mas oferece uma gama maior de configuração e personalização.
Ubuntu
sudo apt-get install zsh
Mac
brew install zsh
Se deu tudo certo, agora é só trocar o shell e ser feliz.
chsh -s `which zsh`
Talvez, por questões de segurança, seu trabalho não permita mudar o shell (caso de bancos e fintechs). Nesse caso é possível adicionar um exec zsh
na última linha do seu arquivo ~/.bashrc
.
Trazendo a magia para seu terminal
O framework Oh My Zsh é a adição perfeita para customizações nesse seu novo shell novinho em folha.
Via curl:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Via wget:
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
Instalando o plugin Syntax Highlighting
Este é novo para a maioria das pessoas mas é maravilhoso. Chama-se zsh-syntax-highlighting , inspirado no plugin homônimo de Fish (outro shell). Informa se um comando é válido antes de você pressionar a tecla Enter.
Instalando no Mac ou Ubuntu
Basta clonar o projeto para a pasta de plugins 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
Depois para ativar, basta incluir na sua lista de plugins em ~/.zshrc
:
plugins=([seus outros plugins] zsh-syntax-highlighting)
Reinicie o zsh (como abrir uma nova aba no seu terminal) e está feito.
Instalando o plugin Syntax Auto Suggestions
Esse plugin vai sugerir comandos baseados no seu histórico. Assim como o anterior, basta instalar e usufruir:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Para ativar, basta adicioná-lo também no ~/.zshrc
:
plugins=([seus outros plugins] zsh-autosuggestions)
Instalando o Z
A última coisa que quero lhe mostrar é o Z. Um script que torna a navegação no terminal muito mais rápida. Você definitivamente quer o Z.
Em vez de digitar cd ~/Folder/DifferentFolder/project/
, você pode simplesmente digitar z proj
. É simples assim! Lembre-se de que z não é um script mágico que sabe onde estão todas as pastas do seu computador. Ele rastreia seu cd para as pastas em um arquivo chamado ~ / .z
. Depois de ter usado o cd em uma pasta uma vez, você pode usar o z para navegar até ele.
E já está instalado no Oh My Zsh, você só precisa habilitá-lo:
plugins=([seus outros plugins] z)
O céu é o limite
O terminal é uma ferramenta realmente poderosa. Facilita e melhora seu dia a dia, em vez de tentar evitá-lo, torne-se melhor em usá-lo.
Lembrou de mais alguma ferramenta que ajuda no workflow?
Me manda um salve lá no twitter @guilhermesteves