انتقل إلى المحتوى الرئيسي

إصلاح أخطاء اتصال WSL في Cursor

Cursor WSL Fix

بدءًا من Cursor 3.0.9، واجه العديد من المستخدمين خطأً محبطًا في اتصال WSL: Directory not found: --classic. يحدث هذا لأن shim WSL المستخدم من قبل Cursor يتلف بعد تحديث واجهة Glass (Agent). يوفر هذا الدليل إصلاحًا موثوقًا.

فهم المشكلة

عند محاولة فتح مجلد WSL في Cursor من الطرفية، قد ترى:

Directory not found: --classic

يحدث هذا بسبب:

  • إدخال Cursor 3.0.9+ لواجهة Glass (Agent)
  • عدم تحديث سكربت shim WSL بشكل صحيح
  • سوء تفسير علامة --classic كاسم مجلد

الإصلاح: إنشاء سكربت Wrapper ذكي

الخطوة 1: تحديد موقع ملف Cursor التنفيذي

ابحث عن مكان تثبيت Cursor على Windows:

# المواقع الشائعة:
C:\Users\<username>\AppData\Local\Programs\cursor\Cursor.exe
# أو
C:\Program Files\Cursor\Cursor.exe

الخطوة 2: إنشاء سكربت الـ Wrapper

أنشئ ملفًا باسم cursor-wsl في دليل 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

الخطوة 3: الإضافة إلى PATH

أضف هذا إلى ~/.bashrc أو ~/.zshrc:

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

ثم أعد التحميل:

source ~/.bashrc  # أو ~/.zshrc

الخطوة 4: إنشاء Alias مريح

أضف إلى إعداد shell الخاص بك:

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

إصلاح بديل: طريقة مسار Windows المباشر

إذا لم يعمل الـ wrapper، استخدم هذا النهج المباشر:

# الإضافة إلى ~/.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"
}

التحقق من الإصلاح

اختبر إعدادك:

# الانتقال إلى مشروع
cd ~/my-project

# الفتح في Cursor
cursor .

# أو استخدام الـ Alias
c.

يجب أن يفتح Cursor الآن دون خطأ --classic.

نصائح إضافية

تحديث مسار Cursor تلقائيًا

إذا تغير اسم مستخدم Windows أو تم نقل Cursor:

# البحث عن Cursor تلقائيًا
find /mnt/c -name "Cursor.exe" -type f 2>/dev/null | head -1

التعامل مع المسافات في المسارات

إذا كان اسم مستخدم Windows يحتوي على مسافات، ضع المسار بين علامات اقتباس:

"$WINDOWS_CURSOR" --classic "$WSL_PATH"

إعدادات خاصة بـ WSL2

بالنسبة لـ WSL2، تأكد من أن /etc/wsl.conf يسمح بالتشغيل المتداخل مع Windows:

[interop]
enabled = true
appendWindowsPath = true

ثم أعد تشغيل WSL:

wsl --shutdown

استكشاف الأخطاء وإصلاحها

المشكلةالحل
command not found: cursor-wslتأكد من أن ~/.local/bin موجود في PATH الخاص بك
Cursor.exe not foundقم بتحديث المسار في السكربت ليطابق موقع التثبيت الخاص بك
بدء تشغيل بطيءهذا أمر طبيعي لتشغيل WSL→Windows المتداخل؛ فكر في استخدام VS Code Remote WSL
مشاكل مراقب الملفاتأضف أنماط "files.watcherExclude" في إعدادات Cursor

الموارد ذات الصلة