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

إصلاح أخطاء اتصال 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

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