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

بدءًا من 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 |