تقوم MPROCS بتشغيل أوامر متعددة بالتوازي وتُظهر إخراج كل أمر بشكل منفصل.
عندما تعمل في مشروع ، فغالبًا ما تحتاج إلى تشغيل نفس قائمة الأوامر. على سبيل المثال: webpack serve ، jest --watch ، node src/server.js . مع MPROCs ، يمكنك سرد هذه الأوامر في mprocs.yaml وتشغيلها جميعها عن طريق تشغيل mprocs . ثم يمكنك التبديل بين مخرجات تشغيل الأوامر والتفاعل معها.
إنه مشابه بشكل متزامن ، لكن MPROCS يوضح إخراج كل أمر بشكل منفصل ويسمح بالتفاعل مع العمليات (يمكنك حتى العمل في VIM داخل MPROCS ).


قم بتنزيل التنفيذ لمنصة الخاصة بك ووضعه في دليل مدرج في PATH.
npm install -g mprocsyarn global add mprocsbrew install mprocscargo install mprocsscoop install mprocsyay mprocsyay mprocs-bingit clone ' https://mpr.makedeb.org/mprocs '
cd mprocs/
makedeb -simprocs cmd1 cmd2 … (مثال: mprocs "yarn test -w" "webpack serve" )أو
mprocs.yamlmprocs مثال mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testمخطط تكوين JSON/YAML
هناك نوعان من التكوينات: العالمية والمحلية. يتم تحميل التكوين العالمي من ~/.config/mprocs/mprocs.yaml (أو ~AppDataRoamingmprocsmprocs.yaml على Windows). يتم تحميل التكوين المحلي من mprocs.yaml من الدليل الحالي (أو تعيين عبر الوسيطة CLI: mprocs --config ./cfg/mprocs.yaml ). الإعدادات في إعدادات التكوين المحلية تخطي الإعدادات العالمية .
<CONFIG_DIR> بمسار الدليل الذي يوجد فيه التكوين.xيمكن تجاوز روابط المفاتيح الافتراضية في التكوين باستخدام حقول keymap_procs أو keymap_term أو keymap_copy . يتم توثيق الأوامر المتاحة في قسم التحكم عن بُعد.
هناك ثلاثة مستويات Keymap:
~/.config/mprocs/mprocs.yaml (أو ~AppDataRoamingmprocsmprocs.yaml على Windows)./mprocs.yaml يتجاوز الرافعات المنخفضة الارتباطات من المستويات السابقة. يمكن مسح روابط المفاتيح من المستويات السابقة عن طريق تحديد reset: true في نفس مستوى المفاتيح.
يتم تعريف روابط المفاتيح بين < و > ، على سبيل المثال ، <Enter> (إدخال المفتاح) ، <Down> (السهم لأسفل) ، <Up> (أعلى السهم) ، <Cq> (Ctrl + Q).
keymap_procs : # keymap when process list is focused
<C-q> : { c: toggle-focus }
<C-a> : null # unbind key
keymap_term : # keymap when terminal is focused
reset : true
<C-q> : { c: toggle-focus }
<C-j> :
c : batch
cmds :
- { c: focus-procs }
- { c: next-proc } $select Operatorيمكنك تحديد قيم مختلفة اعتمادًا على نظام التشغيل الحالي. يمكن لف أي قيمة في التكوين بمشغل SELECT $ . لتوفير قيم مختلفة بناءً على نظام التشغيل الحالي ، حدد كائن ما يلي:
$select: osmacos: value . يتم سرد القيم الممكنة هنا: https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value إذا لم يتم تعريف أي قيمة لنظام التشغيل الحالي. إذا لم يكن نظام التشغيل الحالي متطابقًا مع الحقل $else ، فسيفشل MPROCs في تحميل التكوين. مثال mprocs.yaml :
procs :
my process :
shell :
$select : os
windows : " echo %TEXT% "
$else : " echo $TEXT "
env :
TEXT :
$select : os
windows : Windows
linux : Linux
macos : Macos
freebsd : FreeBSD إذا قمت بتشغيل MProcs مع وسيطة --npm ، فسيتم تحميل البرامج النصية من package.json . لكن البرامج النصية لا يتم تشغيلها افتراضيًا ، ويمكنك إطلاق البرامج النصية المطلوبة يدويًا.
# Run mprocs with scripts from package.json
mprocs --npmركزت قائمة العملية:
q - استقال (عمليات القتل الناعمة وانتظر بعد ذلك للخروج)Q - توقف القوة (إنهاء العمليات)Ca - جزء الإخراج التركيزx - عملية القتل الناعم المختارة (أرسل إشارة Sigterm ، القتل الصعب على النوافذ)X - القتل الصلب العملية المحددة (أرسل sigkill)s - ابدأ عملية محددة ، إذا لم تكن قيد التشغيلr - القتل الناعم العملية المحددة وأعد تشغيلها عندما يتوقفR - القتل الصعب العملية المحددة وأعد تشغيلها عندما يتوقفa - أضف عملية جديدةC - تكرار العملية المحددةd - إزالة العملية المحددة (يجب إيقاف العملية أولاً)e - إعادة تسمية العملية المحددةk أو ↑ - حدد العملية السابقةj أو ↓ - حدد العملية التاليةM-1 - M-8 حدد العملية 1-8Cd أو page down - قم بالتمرير لأسفلCu أو page up - SCROLL OUTPUT UPCe - SCROLL OUTPUT لأسفل بمقدار 3 أسطرCy - SCROLL OUTPUT بمقدار 3 أسطرz - التكبير في النافذة الطرفيةv - أدخل وضع النسختركز إخراج العملية:
Ca - جزء من عمليات التركيزوضع النسخ:
v - ابدأ في اختيار نقطة النهايةc - نسخ النص المحددEsc - ترك وضع النسخCa - جزء من عمليات التركيزCd أو page down - قم بالتمرير لأسفلCu أو page up - SCROLL OUTPUT UPCe - SCROLL OUTPUT لأسفل بمقدار 3 أسطرCy - SCROLL OUTPUT بمقدار 3 أسطرh أو ↑ - حرك المؤشر لأعلىl أو → - حرك المؤشر اليمينj أو ↓ - نقل المؤشر لأسفلh أو ← - حرك المؤشر اليسار اختياريا ، يمكن لـ MPROCs الاستماع على منفذ TCP للأوامر البعيدة. يجب عليك تحديد عنوان خادم التحكم عن بُعد في mprocs.yaml ( server: 127.0.0.1:4050 ) أو عبر وسيطة CLI ( mprocs --server 127.0.0.1:4050 ). لإرسال أمر لتشغيل مثيل MPROCS ، استخدم وسيطة CTL : mprocs --ctl '{c: quit}' أو mprocs --ctl '{c: send-key, key: <Cc>}' .
يتم تشفير الأوامر على أنها YAML. الأوامر المتاحة:
{c: quit-or-ask} -إيقاف العمليات والاستقالة. إذا كانت أي عمليات قيد التشغيل ، أظهر مربع حوار تأكيد.{c: quit} - إيقاف العمليات والاستقالة. لا تظهر تأكيد الحوار.{c: force-quit}{c: toggle-focus} - تبديل التركيز بين قائمة العملية والمحطة.{c: focus-procs} - قائمة عملية التركيز{c: focus-term} - نافذة محطة عملية التركيز{c: zoom} - التكبير في النافذة الطرفية{c: next-proc}{c: prev-proc}{c: select-proc, index: <PROCESS INDEX>} - حدد العملية حسب الفهرس ، والعملية العليا لديها فهرس 0{c: start-proc}{c: term-proc}{c: kill-proc}{c: restart-proc}{c: force-restart-proc}{c: show-add-proc}{c: add-proc, cmd: "<SHELL COMMAND>"}{c: duplicate-proc}{c: show-remove-proc}{c: remove-proc, id: "<PROCESS ID>"}{c: show-rename-proc}{c: rename-proc, name: "<NEW_NAME>"} - إعادة تسمية العملية المحددة حاليًا{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} -أدخل وضع النسخ{c: copy-mode-leave} -اترك وضع النسخ{c: copy-mode-move, dir: <DIRECTION> } -نقل موضع البدء أو إنهاء التحديد. الاتجاهات المتاحة: up/right/down/left .{c: copy-mode-end} -ابدأ في تحديد نقطة نهاية التحديد.{c: copy-mode-copy} -نسخ النص المحدد إلى الحافظة وترك وضع النسخ.{c: send-key, key: "<KEY>"} - إرسال مفتاح إلى العملية الحالية. أمثلة رئيسية: <Ca> ، <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - إرسال أوامر متعددة يهدف MPROCS إلى تسهيل تشغيل أوامر محددة ينتهي بك الأمر مرارًا وتكرارًا ، مثل المترجمين والمتسابقين في الاختبار. هذا على النقيض من TMUX ، والذي يستخدم عادة لتشغيل عمليات طويلة العمر - عادة ما تكون قذيفة - في كل نافذة/جزء. هناك اختلاف آخر هو أن TMUX يقوم بتشغيل خادم وعميل ، مما يسمح للعميل بفصل و reattach لاحقًا ، مع الحفاظ على تشغيل العمليات. يهدف MPROCS إلى المزيد من عمليات الحياة المحدودة التي تستمر في إعادة تشغيلها ، ولكن عندما تنتهي MPROCs ، تقوم بالعمليات التي تعمل داخل نوافذها.
TMUX ليس لديه تسلسل الهروب لنسخ تمكين افتراضيا. لتمكينها إضافة ما يلي إلى ~/.tmux.conf :
set -g set-clipboard on