MPROCS führt parallel mehrere Befehle aus und zeigt die Ausgabe jedes Befehls separat an.
Wenn Sie an einem Projekt arbeiten, benötigen Sie sehr oft die gleiche Liste von Befehlen, um ausgeführt zu werden. Zum Beispiel: webpack serve , jest --watch , node src/server.js . Mit MPROCs können Sie diesen Befehl in mprocs.yaml auflisten und alle durch Ausführen mprocs ausführen. Dann können Sie zwischen Ausgängen der laufenden Befehle wechseln und mit ihnen interagieren.
Es ähnelt gleichzeitig, aber MPROCs zeigt die Ausgabe jedes Befehls getrennt und ermöglicht es, mit Prozessen zu interagieren (Sie können sogar in VIM in MPROCs arbeiten).


Laden Sie die ausführbare Datei für Ihre Plattform herunter und stellen Sie sie in ein in Path enthaltenes Verzeichnis.
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 … (Beispiel: mprocs "yarn test -w" "webpack serve" )ODER
mprocs.yamlmprocs -Befehl ausführen Beispiel mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testJSON/YAML -Konfigurationsschema
Es gibt zwei Arten von Konfigurationen: global und lokal. Die globale Konfiguration wird von ~/.config/mprocs/mprocs.yaml ( ~AppDataRoamingmprocsmprocs.yaml unter Windows) geladen. Die lokale Konfiguration wird aus mprocs.yaml aus dem aktuellen Verzeichnis geladen (oder über CLI -Argument festgelegt: mprocs --config ./cfg/mprocs.yaml ). Einstellungen in den lokalen Konfigurationsüberschreibungen Einstellungen der globalen Einstellungen.
<CONFIG_DIR> wird durch den Pfad des Verzeichnisses ersetzt, in dem sich die Konfiguration befindet.x Schlüssel oder beim Beenden von MPROCs).Standardschlüsselbindungen können in der Konfiguration unter Verwendung von Keymap_Procs , Keymap_term oder Keymap_Copy -Feldern überschrieben werden. Die verfügbaren Befehle sind im Abschnitt Fernbedienungsabschnitt dokumentiert.
Es gibt drei Keymap -Werte:
~/.config/mprocs/mprocs.yaml (oder ~AppDataRoamingmprocsmprocs.yaml unter Windows)./mprocs.yaml (kann durch die -c/-config cli arg überschrieben werden) Niedrigere Hebel überschreiben die Bindungen aus früheren Ebenen. Schlüsselbindungen aus früheren Ebenen können gelöscht werden, indem reset: true -Feld auf dem gleichen Niveau wie Schlüssel angegeben wird.
Schlüsselbindungen werden zwischen < , z > B. <Enter> (Eingabetaste), <Down> (Down -Pfeil), <Up> (UP -Pfeil), <Cq> (Strg + q) definiert.
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 operatorSie können unterschiedliche Werte in Abhängigkeit vom aktuellen Betriebssystem definieren. Jeder Wert in der Konfiguration kann mit einem $ select -Operator verpackt werden. So definieren Sie unterschiedliche Werte basierend auf dem aktuellen Betriebssystem ein Objekt mit:
$select: osmacos: value . Mögliche Werte sind hier aufgeführt: https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value wird übereinstimmt, wenn für das aktuelle Betriebssystem kein Wert definiert wurde. Wenn das aktuelle Betriebssystem nicht übereinstimmt und das Feld $else fehlt, fehlt MPROCS nicht die Konfiguration. Beispiel 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 Wenn Sie MPROCs mit einem --npm -Argument ausführen, werden Skripte von package.json geladen. Die Skripte werden jedoch standardmäßig nicht ausgeführt, und Sie können die gewünschten Skripte manuell starten.
# Run mprocs with scripts from package.json
mprocs --npmProzessliste fokussiert:
q - Hören Sie auf (Soft Kill -Prozesse und warten Sie, um zu beenden)Q - Force -Kündigung (Beendigung von Prozessen)Ca - Fokusabgabebereichx - Soft Kill ausgewählter Prozess (Sigterm Signal senden, Hard Kill auf Windows)X - Hard Kill ausgewählter Prozess (Sigkill senden)s - den ausgewählten Prozess starten, wenn er nicht ausgeführt wirdr - Soft Kill ausgewählter Prozess und starten Sie ihn neu, wenn es stopptR - Hard Kill ausgewählter Prozess und starten Sie ihn neu, wenn es stoppta - Neuen Prozess hinzufügenC - ausgewählter Prozess doppelte Prozessed - Ausgewählter Prozess entfernen (der Prozess muss zuerst gestoppt werden)e - Ausgewählter Prozess umbenennenk oder ↑ - Wählen Sie den vorherigen Prozess ausj oder ↓ - Wählen Sie den nächsten Prozess ausM-1 - M-8 -Wählen Sie den Prozess 1-8 ausCd oder page down - Scrollenausgabe nach untenCu oder page up - Scrollenausgabe nach obenCe - Scrollenausgabe um 3 Zeilen herunterCy - Scrollenausgabe um 3 Zeilen nach obenz - Zoomen in ein Terminalfensterv - Kopiermodus eingebenProzessausgabe fokussiert:
Ca - Fokus Prozesse Scheiben SieKopiermodus:
v - Die Auswahl des Endpunkts beginnenc - Ausgewählter Text kopierenEsc - Kopiermodus verlassenCa - Fokus Prozesse Scheiben SieCd oder page down - Scrollenausgabe nach untenCu oder page up - Scrollenausgabe nach obenCe - Scrollenausgabe um 3 Zeilen herunterCy - Scrollenausgabe um 3 Zeilen nach obenh oder ↑ - Cursor nach oben bewegenl oder → - Cursor rechts bewegenj oder ↓ - Cursor nach unten bewegenh oder ← - Cursor links bewegen Optional können MPROCs den TCP -Port für Remote -Befehle anhören. Sie müssen die Adresse des Fernbedienungsservers in mprocs.yaml ( server: 127.0.0.1:4050 ) oder über CLI -Argument ( mprocs --server 127.0.0.1:4050 ) definieren. So senden Sie einen Befehl an das Ausführen von MPROCS- Instanz. Verwenden Sie das CTL- Argument: mprocs --ctl '{c: quit}' oder mprocs --ctl '{c: send-key, key: <Cc>}' .
Befehle werden als yaml codiert. Verfügbare Befehle:
{c: quit-or-ask} -Stoppen Sie Prozesse an und beenden Sie. Wenn Prozesse ausgeführt werden, zeigen Sie einen Bestätigungsdialog an.{c: quit} - Stoppen Sie Prozesse und beenden Sie. Zeigt kein Dialog zur Bestätigung an.{c: force-quit}{c: toggle-focus} - Fokus zwischen Prozessliste und Terminal.{c: focus-procs} - Fokusprozessliste{c: focus-term} - Fokus -Prozess -Terminalfenster{c: zoom} - Zoom in das Terminalfenster{c: next-proc}{c: prev-proc}{c: select-proc, index: <PROCESS INDEX>}{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>"} - Umbenennen Sie den aktuell ausgewählten Prozess um{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} -Geben{c: copy-mode-leave} -Kopiermodus verlassen{c: copy-mode-move, dir: <DIRECTION> } -Start- oder Endposition der Auswahl bewegen. Verfügbare Anweisungen: up/right/down/left .{c: copy-mode-end}{c: copy-mode-copy} -Kopieren Sie den ausgewählten Text in die Zwischenablage und lassen Sie den Kopiermodus.{c: send-key, key: "<KEY>"} - Senden Sie den Schlüssel an den aktuellen Prozess. Schlüsselbeispiele: <Ca> , <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - Senden Sie mehrere Befehle MPROCS soll es einfacher machen, bestimmte Befehle auszuführen, die Sie am Ende wiederholt ausführen, z. B. Compiler und Testläufer. Dies steht im Gegensatz zu TMUX , das normalerweise verwendet wird, um viel mehr langlebige Prozesse - normalerweise eine Hülle - in jedem Fenster/Bereich auszuführen. Ein weiterer Unterschied besteht darin, dass TMUX einen Server und einen Client ausführt, wodurch der Client es später trennen und wieder aufnehmen kann, wodurch die Prozesse ausgeführt werden. MPROCS ist mehr für endliche Lebensdauerprozesse gemeint, die Sie immer wieder aufliegen, aber wenn MPROCs endet, werden auch die Prozesse, die sie in seinen Fenstern ausgeführt werden.
TMUX hat keine Escape -Sequenzen, um standardmäßig aktiviert zu werden. So fügen Sie ~/.tmux.conf Folgendes hinzu:
set -g set-clipboard on