Escrito por: Rodrigo Gomes

Ambiente de trabalho produtivo com PowerShell

Terminal e produtividade

Contextualização

Boa parte dos desenvolvedores que utilizam o Windows como sistema operacional de desenvolvimento negligencia as configurações do terminal — algo que pode impulsionar e gerar muito mais produtividade no ambiente de trabalho. Já os desenvolvedores que trabalham em ambientes Unix-like estão acostumados a usar o terminal no dia a dia.

Particularmente, gosto de ter uma experiência de terminal mais próxima possível em ambos os ambientes. Então, vamos lá: é hora de melhorar esse seu terminal sem graça e torná-lo mais produtivo.

Neste artigo, não vou me estender muito, mas vou mostrar o que considero o mínimo necessário para configurar um ambiente de trabalho adequado utilizando o PowerShell.

Aviso! Todos os comandos apresentados neste guia foram retirados das documentações oficiais de cada ferramenta. Caso algum comando não funcione ou não gere o resultado esperado, verifique se houve alguma atualização por parte dos fornecedores.

Instalação do PowerShell

Primeiro passo é fazer a instalação do PowerShell na versão mais recente no seu ambiente Windows, Instalar o PowerShell usando o WinGet

Pesquisar a versão mais recente do PowerShell

winget search Microsoft.PowerShell

Saída

Name               Id                           Version Source
---------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.5.1.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.4 winget

Instalar o Powershell ou a versão prévia do PowerShell com o parâmetro id

winget install --id Microsoft.PowerShell --source winget

No painel de configurações do aplicativo Terminal Ctrl+, em inicialização, selecione PowerShell como perfil padrão.

Instalação Oh My Posh.

Oh My Posh é um mecanismo de prompt personalizado para qualquer shell que tenha a capacidade de ajustar a sequência de prompt com uma função ou variável.

Para realizar a instatação no Windows basta seguir o guia no site do projeto. Abra o prompt do PowerShell e execute o commando abaixo:

winget install JanDeDobbeleer.OhMyPosh -s winget

Vamos instalar também uma fonte do pacote Nerd Fonts para dar suporte a ícones no terminal, o próprio Oh My Posh fornece um utilitário de instalação.

Execute o comando abaixo para listar as fontes disponíveis para instalação, e selecione a fonte de sua preferência.

oh-my-posh font install

No painel de configurações do aplicativo Terminal Ctrl+, em Padrão -> Aparência, altere para a fonte recem instalada.

Configurando o Oh My Posh

Procedimento abaixo está descrito na documentação do projeto.

Para realizar a configuração de temas do Oh My posh você pode adicionar o script diretamente no arquivo de perfil do PowerShell, caso o perfil não exista inicie com o comando abaixo.

notepad $PROFILE

Se o comando acima apresentar erro, certifique-se de criar o perfil primeiro.

New-Item -Path $PROFILE -Type File -Force

Neste cenário, também pode ser que o PowerShell bloqueie a execução de scripts locais. Para resolver isso, configure o PowerShell para exigir que apenas scripts remotos sejam assinados usando Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine ou assine o perfil.

Adicione o seguinte snippet como a última linha do seu script de perfil do PowerShell:

oh-my-posh init pwsh | Invoke-Expression

Para adicionar um tema customizado verifique a listagem de temas disponíveis, e informe o nome do tema, exemplo do comando utilizando variáveis de ambiente

oh-my-posh init pwsh --config $env:LOCALAPPDATA'\Programs\oh-my-posh\themes\takuya.omp.json' | Invoke-Expression

Instalação de módulos utilitários para o PowerShell

Terminal Icons

Execute o comando abaixo para instalação do Terminal Icons

Install-Module -Name Terminal-Icons -Repository PSGallery

PS FZF

Para instalação do PSFzf móudlo do PowerShell que encapsula o fzf, é necessário ter o fzf instalado no sistema, execute o comando abaixo para obter via gerenciado de pacotes winget.

winget install fzf

Em seguida instale o módulo PowerShell

Install-Module -Name PSFzf -Repository PSGallery

Atualizar o perfil do PowerShell

Com os utilitários acima instalados podemos atualizar o arquivo de configuração de perfil do PowerShell, veja o exemplo abaixo:

#Prompt
oh-my-posh init pwsh --config $env:LOCALAPPDATA'\Programs\oh-my-posh\themes\takuya.omp.json' | Invoke-Expression

#Terminal Icons
Import-Module -Name Terminal-Icons

#PSReadLine
Set-PSReadLineOption -EditMode Emacs
Set-PSReadLineOption -BellStyle None
Set-PSReadLineOption -PredictionSource History

#Fzf
Import-Module PSFzf
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+f' -PSReadlineChordReverseHistory 'Ctrl+r'

# Utilities
function which ($command) {
  Get-Command -Name $command -ErrorAction SilentlyContinue |
    Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}

Gerenciadores de pacotes adicionais, Chocolatey e Scoop

Falando em gerenciadores de pacotes no Windows, não dá para sobreviver apenas com o winget. Muitos fornecedores disponibilizam seus pacotes por meio do Chocolatey ou do Scoop, que são amplamente utilizados e bem aceitos pela comunidade.

Sugestão.

Centralize suas instalações em apenas um gerenciador de pacotes — isso facilita a administração e a instalação de recursos no sistema.

Particularmente, gosto da estrutura de pastas do Scoop, mas vale destacar que alguns pacotes podem depender diretamente do Chocolatey, como é o caso do DDEV.

Instalação do Chocolatey

Execute o comando abaixo no PowerShell com permissão de administrador.

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Confirme a versão com o comando choco --version.

Instalação do Scoop

Execute o comando abaixo no PowerShell.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

Confirme a versão com o comando scoop --version.

Instalação de ferramentas (Opcional).

Para concluir vou realizar a instalação de algumas ferramentas como Git, Neovim e Curl, com apenas um comando do Scoop é possível instalar as 3 aplicações.

scoop install git neovim curl

Neovim!

A instalação do neovim sugere a instalação de pacotes adicionais, execute o comando abaixo.

scoop bucket add extras
scoop install extras/vcredist2022

Configurações para desenvolvedores (Opcional).

Acesse Configurações > Sistema > Para desenvolvedores. Este painel oferece recursos voltados à preparação do sistema para atividades de desenvolvimento, otimizando o terminal e o comportamento do ambiente de execução.

Recomenda-se ativar, ao menos, as seguintes opções:

  • PowerShell – Política de execução: Altere a política para permitir a execução de scripts locais do PowerShell sem necessidade de assinatura digital.

  • Habilitar sudo: Ative o suporte ao comando sudo, proporcionando uma experiência mais próxima de ambientes Unix-like.

  • Criar uma Unidade de Desenvolvimento: Habilite essa funcionalidade para obter melhor desempenho em cenários voltados ao desenvolvimento, com configurações específicas de cache e indexação.

Considerações finais

A configuração adequada do ambiente de desenvolvimento é um passo estratégico que impacta diretamente na produtividade, estabilidade e escalabilidade das suas soluções. Investir tempo nessa preparação inicial contribui significativamente para um fluxo de trabalho mais eficiente e confiável.