المحرر الخارجي
عميل Git هو المكان الذي تقرأ فيه الشيفرة؛ ونادرًا ما يكون المكان الذي تصلحها فيه. والمسافة بين ملاحظة مشكلة في فرق ووضع المؤشر على ذلك السطر داخل محررك هي بحث عن ملف ثم تمرير — في كل مرة.
وجّه Gitcito إلى محررك مرة واحدة فتُغلق تلك المسافة: انقر بالزر الأيمن على سطر في عرض الملف أو في عرض blame فيُفتح هناك، عند ذلك السطر.
اختيار محرر
الإعدادات ← عام ← المحرر الخارجي. تسرد القائمة المنسدلة المحررات التي
يستطيع Gitcito العثور عليها في هذا الحاسوب — فهو يبحث أولًا عن أمر كل محرر، ثم،
على macOS، عن حزمة التطبيق في /Applications و~/Applications. يعمل المسح في
كل مرة تفتح فيها الإعدادات، فيظهر محرر ثُبّت قبل خمس دقائق دون إعادة تشغيل.
المدعومة جاهزًا:
| المحرر | الأمر الذي يبحث عنه |
|---|---|
| Visual Studio Code | code، code-insiders |
| Cursor | cursor |
| Windsurf | windsurf |
| Zed | zed |
| Sublime Text | subl |
| بيئات JetBrains | idea، webstorm، pycharm، rustrover، goland، clion، rider، phpstorm |
| Xcode | xed |
الحد الذي يستحق المعرفة
القفز إلى سطر يحتاج أمر المحرر، لا أيقونته. حزمة .app على macOS تُشغَّل عبر
open، الذي لا يقبل سوى مسار ولا شيء غيره — فالمحرر الذي لم يُعثر عليه إلا
كحزمة يفتح الملف من أوله، ويقول Gitcito ذلك أسفل القائمة المنسدلة بدل التظاهر
بغير ذلك.
الإصلاح في جانب المحرر: أمر Shell Command: Install 'code' command in PATH في
VS Code، أو رابط subl الرمزي في Sublime، أو Toolbox ← Settings ← Shell
scripts في JetBrains. وحالما يوجد الأمر، اختر المحرر مرة أخرى فيعمل القفز إلى
السطر.
أين تظهر الإجراءات
| السطح | ما الذي يفتحه |
|---|---|
| لسان المستودع، والمستودع في الشريط الجانبي، وشريط الحالة | مجلد المستودع |
| شجرة الملفات، وملفات الالتزام، وملفات المخبأ، ومحرر رسالة الالتزام | ذلك الملف |
| الأيقونة في نهاية الصف داخل شجرة الملفات | ذلك الملف، بنقرة واحدة |
| النقر بالزر الأيمن على سطر في عرض الملف | الملف، عند ذلك السطر |
| النقر بالزر الأيمن على سطر في عرض blame | الملف، عند ذلك السطر |
حزمة .xcodeproj أو غيرها في شجرة الملفات |
الحزمة، في التطبيق الذي يفتحها |
لا تظهر إجراءات الأسطر إلا حيث يظل رقم السطر ذا معنى: ملف معروض عند التزام قديم، أو blame أُرجع إلى مراجعة أسبق، له أسطر لم تعد تطابق ما على القرص، فلا يعرض Gitcito أي قفز هناك بدل أن يرسلك إلى المكان الخاطئ.
مشاريع Xcode والحزم الأخرى
MyApp.xcodeproj مجلد. Git يعرف ذلك، وشجرة الملفات كانت تعرفه أيضًا — إلى أن
صار مزعجًا: فتحه للعثور على project.pbxproj وproject.xcworkspace ومجلد لكل
مطوّر داخل xcuserdata هو ثلاث نقرات من الضجيج لشيء لم تكن تنوي تحريره يدويًا
أصلًا.
صارت هذه تظهر الآن بأيقونة حزمة، والنقر على السطر يفتح الحزمة تمامًا كما
يفعل النقر المزدوج في Finder. السهم ما زال موجودًا، فالمرة الوحيدة التي تحتاج
فيها فعلًا إلى project.pbxproj — وهي تعارض دمج في الغالب — تنزل إليه كما كنت
تفعل.
المعروفة: .xcodeproj و.xcworkspace و.xcframework و.framework و.app
و.appex و.dSYM و.playground و.xcuserdatad.
وغير المعروفة عمدًا: .xcassets و.lproj. هما حزمتان أيضًا، لكن الناس يحرّرون
الملفات داخلهما، فطيّهما يكلّف أكثر مما يوفّر.
الحدود
النظام هو من يفتح الحزمة، لا محرّرك. إذا سلّمت .xcodeproj لمحرّر نصوص
فسيفتحه كمجلد مليء بقوائم الخصائص، وهذا ليس ما أراده من نقر عليه — لذلك يسلّمه
Gitcito لما يربطه به نظام التشغيل، وهو Xcode على أي Mac مثبَّت عليه Xcode.
اختيارك للمحرّر لا يتغيّر، ويظل ساريًا على كل ملف عادي.
هذا اصطلاح تسمية، لا راية في نظام الملفات. ينظر Gitcito إلى الامتداد، فمجلد
سمّيته صدفةً notes.app سيُطوى أيضًا، وعلى Linux أو Windows — حيث هذه مجلدات
عادية — يفتح النقر مدير الملفات بدل بيئة تطوير.
أمر خاص بك
اختر أمر مخصص لأي شيء ليس في الجدول — سكربت غلاف، أو مشغّل تطوير عن بُعد، أو محرر طرفية يبدأ عبر وسيطك أنت.
| الحقل | المعنى |
|---|---|
| الأمر | الملف التنفيذي الذي يُشغَّل. بلا صدفة، فلا && ولا أنابيب ولا أنماط عامة. |
| الاسم | ما تسميه به مداخل القائمة. |
| وسائط الملف | قالب argv، مثل -g {path}:{line}:{col} |
| وسائط المجلد | قالب argv، وعادةً {path} وحده |
تُقسَّم القوالب عند المسافات ويُستبدل كل رمز مرة واحدة — فالمسار الذي يحوي مسافة
يبقى وسيطًا واحدًا، ولا يُعاد تحليل شيء بعد ذلك، فلا يمكن لاسم ملف أن يتحول إلى
صياغة برمجية أبدًا. أربعة عناصر نائبة: {path} و{line} و{col} و{repo}.
العنصر النائب بلا قيمة يأخذ معه رايته: --line {line} {path} إن شُغّل بلا سطر
يصير المسار وحده، لا --line معلَّقًا يبتلع اسم الملف بوصفه وسيطه. والقالب الذي
لا يحوي {line} يعني ببساطة أن Gitcito لن يعرض إجراءات دقيقة على مستوى السطر
لذلك المحرر.
ما ليس هذا
هذا ليس إعداد تطبيق «فتح باستخدام»، الذي يعرض منتقي النظام ويتذكر تطبيقًا واحدًا لفتح أي شيء — صورة أو ملف PDF أو مجلدًا في Finder. المحرر هو الأكثر تخصيصًا بين الاثنين، فحيث يكون كلاهما مضبوطًا يفوز المحرر على الأيقونة في نهاية صف شجرة الملفات؛ ويبقى كلاهما مدرجًا في قائمة الزر الأيمن.
لا يشغّل Gitcito محررك من تلقاء نفسه أبدًا، وإغلاق Gitcito لا يغلقه أبدًا: المحرر يبدأ منفصلًا، بوصفه عملية قائمة بذاتها.