Pular para o conteúdo principal

Resolvendo Travamentos e Congelamentos do Terminal no Cursor

Cursor Terminal Hang

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​

SintomaDescrição
Terminal sem respostaNenhuma saída após inserir comando
Comando travadoComando inicia mas nunca completa
Cursor congeladoCursor do terminal para de piscar
Falha na inicialização do shellTerminal abre mas shell não carrega
Alto uso de CPUProcesso 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:

  1. 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
  2. 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

Recursos Relacionados​