Pular para o conteúdo principal

Corrigindo Erros de Conexão WSL no Cursor

Cursor WSL Fix

A partir do Cursor 3.0.9, muitos usuários encontraram um erro frustrante de conexão WSL: Directory not found: --classic. Isso acontece porque o shim WSL usado pelo Cursor fica corrompido após a atualização da interface Glass (Agent). Este guia fornece uma correção confiável.

Entendendo o Problema

Quando você tenta abrir uma pasta WSL no Cursor a partir do terminal, pode ver:

Directory not found: --classic

Isso ocorre porque:

  • O Cursor 3.0.9+ introduziu a interface Glass (Agent)
  • O script shim WSL não foi atualizado corretamente
  • A flag --classic é interpretada erroneamente como um nome de pasta

A Correção: Criar um Script Wrapper Inteligente

Passo 1: Localizar Seu Executável do Cursor

Encontre onde o Cursor está instalado no Windows:

# Locais comuns:
C:\Users\<username>\AppData\Local\Programs\cursor\Cursor.exe
# ou
C:\Program Files\Cursor\Cursor.exe

Passo 2: Criar o Script Wrapper

Crie um arquivo chamado cursor-wsl no seu diretório home do WSL (~/.local/bin/):

mkdir -p ~/.local/bin
cat > ~/.local/bin/cursor-wsl << 'EOF'
#!/bin/bash
# Smart wrapper for Cursor WSL connection
# Fixes the --classic directory error

WINDOWS_CURSOR="/mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' 2>/dev/null | tr -d '\r')/AppData/Local/Programs/cursor/Cursor.exe"

if [ ! -f "$WINDOWS_CURSOR" ]; then
WINDOWS_CURSOR="/mnt/c/Program Files/Cursor/Cursor.exe"
fi

if [ ! -f "$WINDOWS_CURSOR" ]; then
echo "Error: Could not find Cursor.exe"
echo "Please update WINDOWS_CURSOR path in this script"
exit 1
fi

# Convert WSL path to Windows path
WSL_PATH="$(wslpath -w "$PWD")"

# Launch Cursor with the correct path
"$WINDOWS_CURSOR" --classic "$WSL_PATH" "$@"
EOF

chmod +x ~/.local/bin/cursor-wsl

Passo 3: Adicionar ao PATH

Adicione isso ao seu ~/.bashrc ou ~/.zshrc:

export PATH="$HOME/.local/bin:$PATH"

Depois recarregue:

source ~/.bashrc  # ou ~/.zshrc

Passo 4: Criar um Alias Conveniente

Adicione à configuração do seu shell:

alias cursor='cursor-wsl'
alias c.='cursor-wsl .'

Correção Alternativa: Método de Caminho Windows Direto

Se o wrapper não funcionar, use esta abordagem direta:

# Adicionar a ~/.bashrc
cursor() {
local win_path
win_path=$(wslpath -w "${1:-$PWD}")
/mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' | tr -d '\r')/AppData/Local/Programs/cursor/Cursor.exe --classic "$win_path"
}

Verificando a Correção

Teste sua configuração:

# Navegar para um projeto
cd ~/my-project

# Abrir no Cursor
cursor .

# Ou usar o alias
c.

O Cursor agora deve abrir sem o erro --classic.

Dicas Adicionais

Atualizar o Caminho do Cursor Automaticamente

Se o seu nome de usuário do Windows mudar ou o Cursor for movido:

# Encontrar o Cursor automaticamente
find /mnt/c -name "Cursor.exe" -type f 2>/dev/null | head -1

Lidar com Espaços em Caminhos

Se o seu nome de usuário do Windows tiver espaços, coloque o caminho entre aspas:

"$WINDOWS_CURSOR" --classic "$WSL_PATH"

Configurações Específicas do WSL2

Para o WSL2, certifique-se de que seu /etc/wsl.conf permite a interoperabilidade com Windows:

[interop]
enabled = true
appendWindowsPath = true

Depois reinicie o WSL:

wsl --shutdown

Solução de Problemas

ProblemaSolução
command not found: cursor-wslCertifique-se de que ~/.local/bin está no seu PATH
Cursor.exe not foundAtualize o caminho no script para corresponder ao seu local de instalação
Inicialização lentaIsso é normal para a interoperabilidade WSL→Windows; considere usar o VS Code Remote WSL
Problemas do observador de arquivosAdicione padrões "files.watcherExclude" nas configurações do Cursor

Recursos Relacionados