MPROCS exécute plusieurs commandes en parallèle et affiche la sortie de chaque commande séparément.
Lorsque vous travaillez sur un projet, vous avez très souvent besoin de la même liste de commandes en cours d'exécution. Par exemple: webpack serve , jest --watch , node src/server.js . Avec MPROCS, vous pouvez répertorier ces commandes dans mprocs.yaml et les exécuter toutes en exécutant mprocs . Ensuite, vous pouvez basculer entre les sorties des commandes en cours d'exécution et interagir avec eux.
Il est similaire à simultanément, mais MPROCS affiche la sortie de chaque commande séparément et permet d'interagir avec les processus (vous pouvez même travailler dans VIM à l'intérieur des MProcs ).


Téléchargez l'exécutable pour votre plateforme et placez-le dans un répertoire inclus dans 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 … (Exemple: mprocs "yarn test -w" "webpack serve" )OU
mprocs.yamlmprocs Exemple mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testSchéma de configuration JSON / YAML
Il existe deux types de configurations: globale et locale. La configuration globale est chargée à partir de ~/.config/mprocs/mprocs.yaml (ou ~AppDataRoamingmprocsmprocs.yaml sur Windows). La configuration locale est chargée à partir de mprocs.yaml à partir du répertoire actuel (ou défini via l'argument CLI: mprocs --config ./cfg/mprocs.yaml ). Paramètres dans les paramètres de remplacement de configuration locale du global .
<CONFIG_DIR> sera remplacé par le chemin d'accès du répertoire où se trouve la configuration.x ou lors de la sortie des MProcs).Les liaisons par défaut des clés peuvent être remplacées dans la configuration à l'aide de champs keymap_procs , keymap_term ou keymap_copy . Les commandes disponibles sont documentées dans la section télécommande.
Il y a trois niveaux de keymap:
~/.config/mprocs/mprocs.yaml (ou ~AppDataRoamingmprocsmprocs.yaml sur Windows)./mprocs.yaml (peut être remplacé par le -c / - config cli arg) Les leviers inférieurs remplacent les liaisons des niveaux précédents. Les liaisons de clés des niveaux précédents peuvent être effacées en spécifiant reset: true au même niveau que les clés.
Les liaisons de clés sont définies entre < , par exemple, <Enter> (Entrée Key), > (flèche vers le <Down> ), <Up> (UP Arrow), <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 OPÉRATEURVous pouvez définir différentes valeurs en fonction du système d'exploitation actuel. Toute valeur de configuration peut être enveloppée d'un opérateur $ Select . Pour fournir différentes valeurs basées sur le système d'exploitation actuel, définissez un objet avec:
$select: osmacos: value . Les valeurs possibles sont répertoriées ici: https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value sera égalée si aucune valeur n'a été définie pour le système d'exploitation actuel. Si le système d'exploitation actuel n'est pas adapté et $else le champ est manquant, les MPROC ne parviendront pas à charger la configuration. Exemple 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 Si vous exécutez des MProcs avec un argument --npm , il chargera les scripts de package.json . Mais les scripts ne sont pas exécutés par défaut, et vous pouvez lancer manuellement les scripts souhaités.
# Run mprocs with scripts from package.json
mprocs --npmListe des processus axée:
q - Quitter (Soft Kill Process et attendre puis sortir)Q - Force quitte (terminer les processus)Ca - Panne de sortie de mise au pointx - Soft Kill Selected Process (Envoyer un signal SIGTERM, tuer dur sur Windows)X - TRAITEMENT SÉLECTIONNEL DE KILL (Envoyer Sigkill)s - Démarrez le processus sélectionné, s'il ne fonctionne pasr - Soft Kill Sélectionné le processus et redémarrez-le quand il s'arrêteR - dur tuer le processus sélectionné et le redémarrer quand il s'arrêtea - Ajouter un nouveau processusC - Processus sélectionné en doubled - supprimer le processus sélectionné (le processus doit être arrêté en premier)e - Renommer le processus sélectionnék ou ↑ - Sélectionnez le processus précédentj ou ↓ - Sélectionnez le processus suivantM-1 - M-8 - Sélectionnez le processus 1-8Cd ou page down - Faites défiler la sortie vers le basCu ou page up - Faites défiler la sortie vers le hautCe - Faites défiler la sortie vers le bas de 3 lignesCy - Faites défiler la sortie de 3 lignesz - Zoom sur la fenêtre du terminalv - Entrez le mode de copieLa sortie du processus axée sur la sortie:
Ca - Focus ProcessMode de copie:
v - Commencez à sélectionner le point finalc - Copier le texte sélectionnéEsc - Laisser le mode de copieCa - Focus ProcessCd ou page down - Faites défiler la sortie vers le basCu ou page up - Faites défiler la sortie vers le hautCe - Faites défiler la sortie vers le bas de 3 lignesCy - Faites défiler la sortie de 3 lignesh ou ↑ - Déplacer le curseur vers le hautl ou → - Déplacer le curseur à droitej ou ↓ - Déplacer le curseur vers le bash ou ← - Déplacer le curseur à gauche Facultativement, les MPROC peuvent écouter sur le port TCP pour les commandes distantes. Vous devez définir l'adresse du serveur de télécommande dans mprocs.yaml ( server: 127.0.0.1:4050 ) ou via l'argument CLI ( mprocs --server 127.0.0.1:4050 ). Pour envoyer une commande à l'exécution de l'instance MProcs , utilisez l'argument CTL : mprocs --ctl '{c: quit}' ou mprocs --ctl '{c: send-key, key: <Cc>}' .
Les commandes sont codées sous forme de YAML. Commandes disponibles:
{c: quit-or-ask} - Arrêtez les processus et quittez. Si des processus sont en cours d'exécution, affichez une boîte de dialogue de confirmation.{c: quit} - Arrêtez les processus et quittez. N'affiche pas la boîte de dialogue confirmer.{c: force-quit}{c: toggle-focus} - basculer la mise au point entre la liste des processus et le terminal.{c: focus-procs} - Liste des processus de mise au point{c: focus-term} - Focus Terminal Window{c: zoom} - zoom sur la fenêtre du terminal{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>"} - Renommer le processus actuellement sélectionné{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} - Entrez le mode de copie{c: copy-mode-leave} - Laisser le mode de copie{c: copy-mode-move, dir: <DIRECTION> } - Déplacer la position de démarrage ou de fin de la sélection. Directions disponibles: up/right/down/left .{c: copy-mode-end} - Commencez à sélectionner le point final de la sélection.{c: copy-mode-copy} - Copier le texte sélectionné dans le presse-papiers et laisser le mode de copie.{c: send-key, key: "<KEY>"} - Envoyez la clé au processus actuel. Exemples de clés: <Ca> , <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - Envoyer plusieurs commandes MPROCS est destiné à faciliter l'exécution de commandes spécifiques que vous finissez par fonctionner à plusieurs reprises, telles que les compilateurs et les coureurs de test. Ceci contraste avec TMUX , qui est généralement utilisé pour exécuter des processus beaucoup plus longs - généralement une coque - dans chaque fenêtre / volet. Une autre différence est que TMUX exécute un serveur et un client, ce qui permet au client de se détacher et de rattacher plus tard, en gardant les processus en cours d'exécution. MPROCS est destiné davantage aux processus de durée de vie finis que vous continuez à réinstaller, mais à la fin des MPROC , il en va de même pour les processus qu'il fonctionne dans ses fenêtres.
TMUX n'a pas de séquences d'échappement pour la copie activées par défaut. Pour l'activer, ajoutez ce qui suit à ~/.tmux.conf :
set -g set-clipboard on