Resolvendo Travamentos e Congelamentos do Terminal no Cursor

O terminal integrado do Cursor pode às vezes travar, congelar ou não responder durante a execução de comandos. Este guia fornece métodos sistemáticos de diagnóstico e correção.
Sintomas Comuns
| Sintoma | Descrição |
|---|---|
| Terminal sem resposta | Nenhuma saída após inserir comando |
| Comando travado | Comando inicia mas nunca completa |
| Cursor congelado | Cursor do terminal para de piscar |
| Falha na inicialização do shell | Terminal abre mas shell não carrega |
| Alto uso de CPU | Processo do terminal consome muita CPU |
Correções Rápidas
Método 1: Reiniciar o Terminal
# No Cursor
1. Clique no ícone da lixeira no canto superior direito do painel do terminal
2. Ou use o atalho Cmd/Ctrl + Shift + P
3. Digite "Terminal: Kill Terminal"
4. Reabra o terminal com Ctrl + `
Método 2: Alternar Tipo de Shell
# Abrir a paleta de comandos (Cmd/Ctrl + Shift + P)
# Digite "Terminal: Select Default Profile"
# Escolha um shell diferente:
# - Windows: PowerShell -> Git Bash -> CMD
# - macOS: zsh -> bash
# - Linux: bash -> zsh
Método 3: Desativar Integração do Shell
// Abrir configurações (Cmd/Ctrl + ,)
// Pesquise "terminal integrated shell integration"
{
"terminal.integrated.shellIntegration.enabled": false
}
Diagnóstico Profundo
Verificação 1: Identificar o Shell Problemático
# Ver qual shell está sendo usado atualmente
echo $SHELL
# Ver versão do shell
$SHELL --version
# Testar se o shell responde
$SHELL -c "echo test"
Verificação 2: Verificar Arquivos de Configuração do Shell
# Verificar se os arquivos de configuração contêm erros
# Bash
bash -n ~/.bashrc
bash -n ~/.bash_profile
# Zsh
zsh -n ~/.zshrc
zsh -n ~/.zprofile
# PowerShell
# No PowerShell, execute:
Test-Path $PROFILE
Verificação 3: Testar com Ambiente Mínimo
# Iniciar shell com ambiente limpo
# Bash
env -i HOME=$HOME TERM=$TERM bash --norc --noprofile
# Zsh
env -i HOME=$HOME TERM=$TERM zsh -f
# Se o ambiente mínimo funcionar, o problema está nos arquivos de configuração
Correções por Shell
Correção Bash
# Problema: comando travado em .bashrc
# Correção: comentar linhas suspeitas
# Editar ~/.bashrc
# Procure e comente:
# - Comandos interativos (vim, nano, etc.)
# - Comandos que requerem entrada
# - Comandos de longa execução
# - Alias problemáticos
# Configurações problemáticas comuns:
# ❌ Não coloque isto em .bashrc:
# eval "$(ssh-agent -s)" # Pode travar
# some-command & # Processos em segundo plano podem causar problemas
# read -p "Press enter" # Entrada interativa trava o terminal
# ✅ Alternativas seguras:
# Coloque comandos interativos em .bash_profile
# Ou use condição:
if [ -z "$PS1" ]; then
# Não interativo, pular
return
fi
Correção Zsh
# Problema: plugin Oh-My-Zsh causando travamento
# Correção: desativar plugins problemáticos
# Editar ~/.zshrc
plugins=(
git
# Desative estes plugins problemáticos:
# nvm # Pode travar se Node não estiver instalado
# pyenv # Pode travar se Python não estiver instalado
# rbenv # Pode travar se Ruby não estiver instalado
)
# Problema: tema de prompt executa lentamente
# Correção: mudar para tema simples
ZSH_THEME="robbyrussell" # Tema rápido
# ZSH_THEME="powerlevel10k/powerlevel10k" # Pode ser lento
# Problema: carregamento automático do nvm é lento
# Correção: carregamento tardio
lazy_load_nvm() {
unset -f npm node nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
}
npm() { lazy_load_nvm; npm "$@"; }
node() { lazy_load_nvm; node "$@"; }
Correção PowerShell
# Problema: script Profile travando
# Correção: verificar PowerShell Profile
# Ver profile atual
$PROFILE
# Testar se o profile é a causa
pwsh -NoProfile
# Se funcionar sem profile,
# edite o profile e comente as linhas problemáticas:
# notepad $PROFILE
# Configurações problemáticas comuns:
# ❌ Não coloque isto no profile:
# Start-SomeLongCommand
# Import-Module de um módulo problemático
# Função de prompt personalizada lenta
# ✅ Usar carregamento tardio
function prompt {
# Inicialização tardia
if (-not $global:PromptInitialized) {
$global:PromptInitialized = $true
# Operações lentas aqui
}
"> "
}
Correções Específicas do Cursor
Correção 1: Atualizar Cursor
# Certifique-se de usar a versão mais recente
# Ajuda -> Verificar Atualizações
# Ou use o atalho Cmd/Ctrl + Shift + P -> "Check for Updates"
Correção 2: Limpar Cache do Terminal
# Feche todos os terminais
# Limpe o cache do Cursor:
# macOS
rm -rf ~/Library/Application\ Support/Cursor/Cache
# Windows
# Delete %APPDATA%\Cursor\Cache
# Linux
rm -rf ~/.config/Cursor/Cache
Correção 3: Redefinir Configurações do Terminal
// Abra settings.json (Cmd/Ctrl + Shift + P -> "Preferences: Open Settings JSON")
// Redefina as configurações relacionadas ao terminal:
{
"terminal.integrated.shellIntegration.enabled": true,
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.enablePersistentSessions": false,
"terminal.integrated.gpuAcceleration": "off"
}
Correção 4: Desativar Aceleração GPU
// Se a renderização do terminal tiver problemas, desative a aceleração GPU
{
"terminal.integrated.gpuAcceleration": "off"
}
Correção 5: Ajustar Timeout do Terminal
// Aumentar o tempo de timeout do comando
{
"terminal.integrated.shellIntegration.commandTimeout": 5000,
"terminal.integrated.shellIntegration.commandFinishedTimeout": 5000
}
Problemas Específicos do Ambiente
Problemas Específicos do Windows
# Problema: Windows Defender escaneando scripts
# Correção: adicionar exclusão
# Segurança do Windows -> Proteção contra vírus e ameaças -> Exclusões
# Adicionar diretório de instalação do Cursor
# Problema: Problema ConPTY
# Correção: usar console legado
{
"terminal.integrated.windowsEnableConpty": false
}
# Problema: Política de execução do PowerShell
# Correção: verificar política de execução
Get-ExecutionPolicy
# Se necessário, defina como RemoteSigned (como administrador):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Problemas Específicos do macOS
# Problema: permissões do terminal macOS
# Correção: verificar permiss ões do terminal
# Preferências do Sistema -> Segurança e Privacidade -> Privacidade -> Acesso Total ao Disco
# Certifique-se de que o Cursor foi adicionado
# Problema: Problema de conversão Rosetta (Apple Silicon)
# Correção: usar arquitetura nativa
# Ao usar a versão x86_64 do Node/ferramentas no Cursor
arch -x86_64 zsh
# Problema: permissões zsh
# Correção: verificar permissões zsh
chmod 755 /bin/zsh
chmod 755 /usr/local/bin/zsh # Se instalado via Homebrew
Problemas Específicos do Linux
# Problema: dependências ausentes
# Correção: instalar pacotes necessários
# Ubuntu/Debian
sudo apt-get install -y libnss3 libgtk-3-0 libxss1 libasound2
# Fedora
sudo dnf install -y nss gtk3 libXScrnSaver alsa-lib
# Problema: Problema Wayland
# Correção: usar X11
# Ao iniciar o Cursor:
CURSOR_USE_WAYLAND=0 cursor
# Ou em settings.json:
{
"terminal.integrated.gpuAcceleration": "off"
}
Diagnóstico Avançado
Ativar Logs de Depuração
// Ativar depuração do terminal
{
"terminal.integrated.logLevel": "trace"
}
# Ver logs
# Ajuda -> Alternar Ferramentas do Desenvolvedor -> Aba Console
# Procure mensagens que começam com [terminal]
Verificar Árvore de Processos
# Encontrar processos do terminal travado
# macOS/Linux
ps aux | grep -i cursor
pstree -p | grep cursor
# Windows (PowerShell)
Get-Process | Where-Object { $_.ProcessName -like "*cursor*" }
# Ou use o Process Explorer
# Matar processo específico
kill -9 <PID> # macOS/Linux
Stop-Process -Id <PID> # Windows
Verificar Descritores de Arquivo
# Verificar se o terminal está travado esperando entrada
# macOS/Linux
lsof -p <PID> | grep -E "(FIFO|PIPE)"
# Verificar TTYs abertos
ls -la /proc/<PID>/fd/ | grep tty
Medidas Preventivas
Práticas Recomendadas de Configuração
# Usar timeouts na configuração do shell
# Bash
timeout_cmd() {
timeout 5s "$@" || echo "Command timed out"
}
# Zsh
set -o pipefail
set -e
# Evitar aliases recursivos
alias ls='ls --color=auto' # Seguro
# alias ls='ls -la' # Perigoso! Recursivo
Manutenção Regular
# Limpeza mensal
# 1. Limpar histórico do terminal
history -c && history -w
# 2. Deletar arquivos temporários
rm -rf /tmp/*
rm -rf ~/.cache/cursor/*
# 3. Atualizar ferramentas
# macOS (Homebrew)
brew update && brew upgrade
# Ubuntu/Debian
sudo apt-get update && sudo apt-get upgrade
# 4. Verificar sintaxe dos arquivos de configuração
bash -n ~/.bashrc
zsh -n ~/.zshrc
Quando Reportar um Bug
Se nenhum dos métodos acima funcionar, reporte à equipe do Cursor:
-
Colete informações:
# Versão do Cursor# Ajuda -> Sobre# Versão do sistema operacional# macOS: sw_vers# Windows: winver# Linux: lsb_release -a# Versão do shell$SHELL --version# Logs de depuração do terminal# Ative, reproduza o problema, depois exporte os logs -
Submeta uma issue no GitHub:
- Inclua passos de reprodução
- Anexe configurações relevantes
- Forneça informações do sistema operacional
- Inclua capturas de tela do erro