Skip to content

الأوامر السريعة والترمينال

بتنزل مع المشروع

نادرًا ما تبدأ بقائمة فاضية. XTop بيقرا ملفات الـ manifest بتاعة المشروع نفسه وبيعرض عليك اللي لقاه كأوامر جاهزة — فالمشروع المستورد بيوصل وnpm run dev موجودة في قائمته أصلًا، بدل قائمة فاضية تقعد تكتبها من دماغك.

بتتاخد منين

الملف في المشروعبيطلّع أنهي أوامر
package.jsonكل entry تحت scripts، ما عدا الـ lifecycle hooks بتاعة npm نفسها (postinstall و prepare …)
composer.jsonكل entry تحت scripts، ما عدا الـ hooks بتاعة composer (pre- و post-)
artisanphp artisan serve و php artisan migrate
Makefileكل target
pyproject.tomlالـ entry points اللي تحت [project.scripts] أو [tool.poetry.scripts] — ولو مفيش، بيعرض install و test
go.modgo run . و go build ./... و go test ./...
Cargo.tomlcargo run و cargo build و cargo test
docker-compose.yml (أو compose.yaml)compose up و compose down و compose logs

الـ runner بيتحدد من الـ lockfile بتاعك. الـ script اللي في package.json بيبقى pnpm dev لو في pnpm-lock.yaml، و yarn dev مع yarn.lock، و bun run dev مع lockfile بتاع bun، و npm run dev في غير كده. ولو في حقل packageManager فهو اللي بيكسب — لأن corepack بيفرضه أصلًا. و Python نفس الحكاية: uv run مع uv.lock، و poetry run مع poetry.

وكل أمر متكتشف مكتوب جنبه الملف اللي جه منه، فالقائمة اللي فيها npm run test و make test مع بعض تفضل واضحة مين فيهم مين.

إمتى بيسألك وإمتى لأ

  • استيراد فولدر — خيار إضافة الأوامر الموجودة في كل مشروع متعلّم افتراضيًا، والـ scan بيعرض عدد الأوامر جنب كل مشروع. وكل اللي اتلقى بيتضاف.
  • إضافة أو تعديل مشروع واحد — القائمة بتظهر في الـ dialog وكلها متعلّمة، وإنت بتشيل العلامة عن اللي مش عايزه.
  • في أي وقت بعد كده — زر اكتشاف الأوامر جوه إدارة الأوامر… بيقرا المشروع من جديد.

والاكتشاف عمره ما بيكرّر. الأمر اللي سطره موجود على المشروع بالفعل بيتخطّى، فلما تشغّله تاني على مشروع مستورد من شهور، بيضيف الـ scripts اللي ظهرت بعد كده وبس.

الأوامر المتكتشفة بتنزل في نطاق خاص، وبتشتغل في المكان الافتراضي بتاع المشروع. والاتنين قابلين للتعديل بعد كده زي أي أمر تاني.

قراءة، مش تشغيل

الاكتشاف بيقرا الملفات وبس — مفيش أي حاجة في المشروع بتتنفّذ. وpackage.json فيه فاصلة زايدة، أو Makefile مكتوب بامتدادات GNU، ببساطة ما بيطلّعش حاجة والباقي بيتقرا عادي. والحد الأقصى ٤٠ أمر من المشروع الواحد.

تلات نطاقات

كل أمر بينتمي لنطاق واحد بالظبط، والنطاق بيحدد يظهر فين:

النطاقبيظهر فيمتخزّن على
خاصمشروع واحدالمشروع نفسه
مجموعةكل مشاريع المجموعة ديالمجموعة
عامكل المشاريعمرة واحدة في المستوى الأعلى

الأوامر العامة متخزّنة مرة واحدة مش متكرّرة في كل مشروع، فتعديل npm install بيحدّثه في كل مكان في نفس الوقت.

قائمة أوامر المشروع: أوامره الخاصة الأول، بعدين أوامر المجموعة، بعدين العامة — وكل واحد مكتوب جنبه نطاقه.
قائمة أوامر المشروع: أوامره الخاصة الأول، بعدين أوامر المجموعة، بعدين العامة — وكل واحد مكتوب جنبه نطاقه.

تقدر تديرهم لكل مشروع من ⌘ ← إدارة الأوامر…، أو لمجموعة كاملة من زر في رأس المجموعة.

كل أمر ليه عنوان (اللي بتشوفه)، وسطر الأمر نفسه، ومكان التشغيل: الافتراضي بتاع المشروع، أو PowerShell، أو cmd، أو Git Bash، أو WSL، أو نافذة ترمينال خارجية.

تشغيل أمر

الضغط على أمر بيفتح نافذة الترمينال ويبدأ جلسة.

تبويب لكل جلسة. النقطة الخضرا = شغّالة، الرمادية = خلصت.
تبويب لكل جلسة. النقطة الخضرا = شغّالة، الرمادية = خلصت.
  • تبويب لكل جلسة. التنقّل بين التبويبات مش بيضيّع حاجة — كل جلسة محتفظة بمخرجاتها كاملة.
  • النقطة هي الحالة. خضرا طول ما العملية شغالة، ورمادية لما تنتهي.
  • ■ إيقاف بيقتل الأمر الشغّال؛ التبويب ومخرجاته بيفضلوا مكانهم.

الـ shell بيتبع بيئة المشروع: wsl.exe -d <distro> --cd <path> لمشاريع WSL، و PowerShell لمشاريع ويندوز.

جلسات حقيقية

دي ترمينالات تفاعلية مش نوافذ عرض: تقدر ترد على سؤال، وتضغط Ctrl+C، وتشغّل vim لو مصمّم.

وعلى الجهاز النادر اللي المحرّك التفاعلي ما يقدرش يشتغل عليه، البرنامج بيرجع لوضع بيعرض المخرجات من غير إدخال كيبورد — ونافذة الترمينال بتقول كده في شريط واضح، بدل ما تفضل تتساءل ليه الكتابة مش بتعمل حاجة.

المفاتيح جوه الترمينال

المفتاحالوظيفة
Ctrl+Cبينسخ لو في نص محدد؛ من غير تحديد بيتبعت كـ SIGINT، وده استخدامه الأشهر
Ctrl+Shift+Cبينسخ دايمًا
Ctrl+Vلصق
Ctrl+كليك على رابطيفتحه في المتصفح. المفتاح مقصود — سحب تحديد فوق رابط المفروض ما يفتحش متصفح