1. Programas
1.1. Windows Terminal
1.2. Powershell
1.3. Scoop
2. Aparência do Powershell
2.4. Oh-my-posh
2.5. Nerd Fonts
2.6. Terminal Icons
3. Extensões de autocomplete
3.7. Z
3.8. PSReadLine
3.9. Posh git
4. Conclusão
Recentemente tive mais contato com outros desenvolvedores via pair programming, e percebi o quanto o terminal deles era mais agradável de usar.
Com isso, conheci alguns programas e extensões que tornam a experiência de navegação entre as pastas muito mais simples, além de deixá-lo visualmente mais agradável e informativo. Mesmo quando uso o terminal no VS Code, a diferença foi gritante:
Ainda não parti para o lado Linux ou Mac da força, então fui pesquisar por soluções no bom e tradicional Windows, mesmo.
Se você tem interesse em ter uma experiência melhor no terminal usando Windows, dá uma olhada no que fiz por aqui e veja se tem algo que quer replicar por aí!
Programas
Inicialmente eu usava só o git bash no próprio VS Code. Quando passei a usar mais de um repositório para rodar uma aplicação, senti a necessidade de ter um terminal onde eu pudesse acompanhar os comandos que eu rodava em cada um, de forma mais centralizada, sem que necessariamente eu tivesse que abrir a IDE. Pra isso, baixei programas que me permitisse usar abas (cada uma acessando um path independente, como o VS Code permite), e um terminal mais atualizado.
Windows Terminal
Esse programa pode ser baixado na Microsoft Store, que geralmente vem com o Windows. Segue aqui o link para te dar um atalho.
Pra mim, ele tem sido melhor que o Windows Powershell, porque me permite abrir várias abas do terminal, assim como geralmente fazemos com abas de um navegador. Também é possível deixar a aparência dele mais bonitinha, se você gostar desses "fru-frus", como eu. Sem os outros programas que mencionarei mais pra frente, logo de início, já é possível deixá-lo assim:
Para adicionar essa transparência é necessário mexer nas configurações, mas isso já te ensino, porque antes quero apresentar uma versão mais atualizada do terminal que vem com o Windows.
Powershell
É uma versão mais atualizada do Windows Powershell que vem com o Windows (esse azul abaixo). A Microsoft fala que as duas versões podem ser usados em conjunto, fazendo com que a instalação de um não substitua o outro, mas não sei o porquê desse comportamento. Também é possível instalar o Powershell a partir da versão 7 na loja da Microsoft, nesse link.
Agora sim, vamos ver como deixar o Windows Terminal com uma aparência um pouco mais amigável, além de alterar o terminal padrão para o PowerShell.
No Windows Terminal, selecione as configurações seguindo os caminhos a seguir:
Inicialização > Perfil padrão: Powershell
Aparência > Usar material acrílico [...]: Ativado
Padrões > Aparência:
- Esquema de cores: Vintage
- Transparência > habilitar material acrílico: Ativado
- Transparência > Opacidade de fundo: 70%
Essas são algumas das configurações do meu terminal, mas é legal ir explorando para entender as suas preferências.
Scoop
O Scoop é um "instalador" de programas, assim como o Winget (que geralmente já vem com o Windows). Esse é um programa opcional, não vou usá-lo para as extensões que eu mencionar nesse artigo, mas ele pode te ajudar a instalar vários outros programas via linha de comando, de uma forma mais rápida e simples, sem aquelas telinhas de download e instalação (dá até pra usá-lo para instalar o Spotify, por exemplo).
A instalação do Scoop pode ser feita com os dois comandos abaixo:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Obs.: O primeiro comando é uma configuração importante para que seja possível instalar coisas remotamente na sua máquina. Sem isso, pode ser que seu Windows não permita a instalação nesse formato.
Em seguida, é necessário adicionar o diretório C:\Users\<USERNAME>\scoop\shims
(lembre de adaptar esse endereço para o seu username na sua máquina) como um novo diretório dentre as variáveis ambiente da máquina dentro de Path:
- Clique na tecla Windows do teclado e busque por "variáveis ambiente". Deve aparecer a opção "Editar as variáveis ambientes do sistema". Selecione essa opção.
- Clique em "Variáveis ambiente"
- Selecione a opção "Path" dentro de "variáveis do Sistema", e depois clique em "editar"
- Selecione "novo", e digite o diretório informado acima. No meu caso, foi assim:
Aparência do Powershell
Por mais que já tenha mencionado algumas configurações que personalizam a aparência do Windows terminal, agora vou especificar alguns programas que também personalizam o conteúdo dele.
Oh-my-posh
Essa é uma extensão que personaliza a aparência e o conteúdo da linha de comando. Por aqui, incluí o nome do usuário, o caminho da pasta, a branch atual, e a hora, cada uma dessas partes com uma cor que gosto:
Para instalar o oh-my-posh, uma das opções é usar o winget:
winget install JanDeDobbeleer.OhMyPosh -s winget
No site da aplicação tem outras opções de instalação (inclusive com scoop!), caso não queira usar essa, ou encontre algum tipo de problema.
Depois dessa instalação, é necessário que o perfil do seu terminal identifique que ele precisa usar o oh-my-posh. Pra isso, vamos abrir o perfil do Powershell no VS Code com o comando abaixo 1:
code $PROFILE
ATENÇÃO: É importante usar esse comando dentro do terminal Powershell, uma vez que é dele que estamos falando. Se abrir dentro do Windows Powershell, por exemplo, já será outro perfil.
O Powershell lê e executa os comandos desse arquivo a cada vez que é aberto. Nele, copie e cole o seguinte comando:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"
Salvando esse arquivo e abrindo uma nova aba no terminal, você já verá algo como a imagem abaixo. Pode ser que os ícones ainda não estejam aparecendo, mas isso está relacionado à fonte, que falarei na próxima aplicação:
Caso queira utilizar um dos temas incluídos na instalação do oh-my-posh, você pode explorar nessa página. Basta substituir o nome do tema no comando do perfil do Powershell que você copiou acima. Se quiser usar o "M365Princess", por exemplo, é só trocar o comando no arquivo por:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\M365Princess.omp.json"
No meu caso, eu fiz um tema personalizado. Se quiser fazer o mesmo, você pode criar um arquivo JSON e informar o caminho até ele nesse comando para o oh-my-posh do perfil do Powershell. O Oh-my-posh ensina a fazer isso na seção de configuração de sua documentação. Se quiser usar o meu, ele está aqui, lembrando eu posso tê-lo modificado dependendo do momento do futuro em que você estiver lendo isso.
Nerd Fonts
Para que os ícones do seu terminal apareçam, o oh-my-posh precisa que você use uma fonte compatível com eles, e uma das recomendações da própria aplicação é instalar uma fonte dentre as "Nerd Fonts".
Você pode baixar diretamente do repositório deles, ou usando um comando do oh-my-posh:
oh-my-posh font install
Essa última forma é bem intuitiva, basta selecionar uma das fontes e ele fará a instalação. Depois disso você precisará selecionar a fonte baixada nas configurações do Windows Terminal:
Caso tenha baixado a fonte de outra forma, você também deve encontrá-la nas configurações.
Terminal Icons
Essa é mais uma extensão para melhorar a aparência do terminal, acrescentando ícones do tipo de arquivo ou pasta que está na lista:
Para instalar, basta rodar os seguintes comandos no seu terminal:
Install-Module -Name Terminal-Icons -Repository PSGallery -Force
Import-Module Terminal-Icons
A cada vez que você abrir seu terminal, para ver o terminal Icons em funcionamento, você precisaria rodar novamente o comando Import-Module Terminal-Icons
. Para que isso não seja necessário, basta acrescentar esse comando no arquivo de perfil do Powershell. (Lembra como faz isso? -> code $PROFILE
).
Extensões de autocomplete
Ok, já falei bastante de extensões que deixam o terminal mais bonito. A partir daqui, vou mostrar algumas que são mega úteis para facilitar o dia a dia, especialmente na navegação entre as pastas.
Z
Essa extensão é um intellisense que consegue aprender com a navegação que você faz entre as pastas, possibilitando que não seja mais necessário digitar o caminho completo quando estiver navegando entre uma e outra.
Como se trata de um intellisense, ele precisa que você faça algumas navegações entre as pastas para "aprender" os que mais acessa. Com isso, é natural que ele não aja conforme o gif acima das primeiras vezes, mas ele aprende bem rápido.
Para instalá-lo, basta digitar o comando:
Install-Module -Name Z -Force
PSReadLine
O PSReadLine é um módulo do Powershell que permite o autocomplete de uma forma inteligente, também. Algumas configurações interessantes podem ser usadas para visualizar e navegar pelo histórico de comandos similares ao que você está digitando:
Para instalar, o comando é:
Install-Module -Name PSReadLine -AllowPrerelease -Force -SkipPublisherCheck
Agora, para que as opções apareçam conforme a imagem acima, vamos colocar mais alguns comandos no perfil do Powershell (aquele code $PROFILE
maroto).
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Você pode aprender mais sobre esses comandos na documentação do PSReadLine
Posh git
O PSReadLine e o Z conseguem dar conta de facilitar o uso de vários comandos, no entanto o posh-git ajuda particularmente no autocomplete dos comandos do git. Um simples "tab" após digitar git checkout
, por exemplo, faz com que apareçam todas as opções de branches existentes no projeto.
Não só isso, mas existem outros vários benefícios que essa extensão pode trazer.
Para usar, basta rodar o comando:
Install-Module posh-git -Scope CurrentUser -Force
Conclusão
Com essas configurações, a linha de comando fica mais apresentável e fácil de navegar. Ela pode até mesmo se tornar mais informativa, caso sejam incluídos alguns segmentos específicos do oh-my-posh.
Para as configurações de aparência, acrescentamos basicamente algumas cores e ícones, mas também adicionamos blocos de conteúdo baseados no diretório em que você se encontra na navegação de pastas e arquivos.
Já as extensões de autocomplete permitem que ferramentas inteligentes usem o seu histórico de comandos para diminuir o tanto que você digita no terminal.
Além das configurações que ensinei por aqui, também é possível dar até mesmo um "apelido" para alguns comandos, como por exemplo para o git
, usando:
Set-Alias g git
Usando esse Set-Alias
no seu perfil do Powershell, você pode escrever g
no lugar de git
, e economizar umas letrinhas.
Por fim, compartilho com você o meu arquivo de perfil do Powershell:
# Prompt
# Import-Module oh-my-posh
Import-Module posh-git
Import-Module -Name Terminal-Icons
# Carrega configurações do prompt
oh-my-posh init pwsh --config ~\Documents\PowerShell\danicaus.omp.json | Invoke-Expression
# Navegação com autocomplete
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
# Adaptando comandos do teclado
Set-Alias vim nvim
Set-Alias g git
Espero que essas informações tenham sido uteis pra você!
Caso tenha alguma dúvida ou sugestão de mais extensões para deixar o Powershell ainda melhor, comente aí embaixo! 💻
-
Também é possível usar o bloco de notas, trocando a palavra "code" por "note". ↩
Top comments (1)
Ótimo artigo! Queria ter lido ele há um tempo atrás, onde tive de juntar um monte de informação espalhada 🥲
Mas antes tarde do que nunca! Agora sei qual artigo indicar quando alguém me perguntar como personalizar o terminal hehe
Parabéns Dani! Sucessooooo