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 หรือเมื่อเลิก mprocs)การผูกคีย์เริ่มต้นสามารถแทนที่ในการกำหนดค่าโดยใช้ keymap_procs , keymap_term หรือฟิลด์ keymap_copy คำสั่งที่มีอยู่จะถูกบันทึกไว้ในส่วนการควบคุมระยะไกล
มีสามระดับปุ่ม:
~/.config/mprocs/mprocs.yaml (หรือ ~AppDataRoamingmprocsmprocs.yaml บน windows)./mprocs.yaml (สามารถแทนที่ด้วย -c/-config cli arg) คันโยกที่ต่ำกว่าแทนที่การผูกจากระดับก่อนหน้า การผูกคีย์จากระดับก่อนหน้าสามารถล้างได้โดยการระบุ 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 - Force Quit (ยกเลิกกระบวนการ)Ca - บานหน้าต่างออกโฟกัสx - กระบวนการที่เลือก Kill Soft (ส่งสัญญาณ sigterm, Hard Kill on Windows)X - กระบวนการที่เลือกฆ่ายาก (ส่ง Sigkill)s - เริ่มกระบวนการที่เลือกหากไม่ทำงานr - กระบวนการที่เลือกให้เลือกอย่างนุ่มนวลและรีสตาร์ทเมื่อหยุดR - ฆ่ากระบวนการที่เลือกอย่างหนักและรีสตาร์ทเมื่อหยุดa - เพิ่มกระบวนการใหม่C - กระบวนการที่เลือกซ้ำd - ลบกระบวนการที่เลือก (ต้องหยุดกระบวนการก่อน)e - เปลี่ยนชื่อกระบวนการที่เลือกk หรือ ↑ - เลือกกระบวนการก่อนหน้าj หรือ ↓ - เลือกกระบวนการถัดไปM-1 - M-8 เลือกกระบวนการ 1-8Cd หรือ page down - เลื่อนเอาต์พุตลงCu หรือ page up - เลื่อนเอาต์พุตขึ้นCe - เลื่อนเอาต์พุตลง 3 บรรทัดCy - เลื่อนเอาต์พุตขึ้น 3 บรรทัดz - ซูมเข้าสู่หน้าต่างเทอร์มินัลv - เข้าสู่โหมดคัดลอกประมวลผลเอาท์พุทโฟกัส:
Ca - บานหน้าต่างกระบวนการโฟกัสโหมดคัดลอก:
v - เริ่มเลือกจุดสิ้นสุดc - คัดลอกข้อความที่เลือกEsc - ออกจากโหมดคัดลอกCa - บานหน้าต่างกระบวนการโฟกัสCd หรือ page down - เลื่อนเอาต์พุตลงCu หรือ page up - เลื่อนเอาต์พุตขึ้นCe - เลื่อนเอาต์พุตลง 3 บรรทัดCy - เลื่อนเอาต์พุตขึ้น 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} - Focus Process Terminal Window{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 เรียกใช้เซิร์ฟเวอร์และไคลเอนต์ซึ่งช่วยให้ไคลเอนต์สามารถแยกและติดกลับในภายหลังทำให้กระบวนการทำงานอยู่ MPROCs มีความหมายมากขึ้นสำหรับกระบวนการตลอดอายุการใช้งานที่คุณทำงานอีกครั้ง แต่เมื่อ MPROC สิ้นสุดลงดังนั้นกระบวนการที่ทำงานอยู่ภายในหน้าต่างของมัน
TMUX ไม่มีลำดับหลบหนีสำหรับการคัดลอกที่เปิดใช้งานโดยค่าเริ่มต้น เพื่อเปิดใช้งานเพิ่มสิ่งต่อไปนี้เป็น ~/.tmux.conf :
set -g set-clipboard on