MPROCS ejecuta múltiples comandos en paralelo y muestra la salida de cada comando por separado.
Cuando trabaja en un proyecto, a menudo necesita la misma lista de comandos para ejecutar. Por ejemplo: webpack serve , jest --watch , node src/server.js . Con MPROCS puede enumerar estos comando en mprocs.yaml y ejecutarlos todos ejecutando mprocs . Luego puede cambiar entre salidas de comandos en ejecución e interactuar con ellos.
Es similar al mismo tiempo, pero los MPROCS muestran la salida de cada comando por separado y permite interactuar con los procesos (incluso puede trabajar en VIM dentro de MPROCS ).


Descargue ejecutable para su plataforma y póngalo en un directorio incluido en la ruta.
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 … (Ejemplo: mprocs "yarn test -w" "webpack serve" )O
mprocs.yamlmprocs Ejemplo mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testEsquema de configuración JSON/YAML
Hay dos tipos de configuraciones: global y local. La configuración global se carga desde ~/.config/mprocs/mprocs.yaml (o ~AppDataRoamingmprocsmprocs.yaml en Windows). La configuración local se carga desde mprocs.yaml desde el directorio actual (o establecido a través del argumento de CLI: mprocs --config ./cfg/mprocs.yaml ). Configuración en la configuración de configuración local Configuración Global .
<CONFIG_DIR> se reemplazará con la ruta del directorio donde se encuentra la configuración.x o al dejar de fumar MPROCS).Los enlaces de teclas predeterminados se pueden anular en la configuración utilizando los campos KEYMAP_PROCS , KEYMAP_MTER o KEYMAP_COPY . Los comandos disponibles se documentan en la sección de control remoto.
Hay tres niveles de Keymap:
~/.config/mprocs/mprocs.yaml (o ~AppDataRoamingmprocsmprocs.yaml en Windows)./mprocs.yaml (puede ser anulado por el -c/-config cli arg) Las palancas más bajas anulan las uniones de niveles anteriores. Los enlaces clave de los niveles anteriores se pueden borrar especificando el campo reset: true en el mismo nivel que las claves.
Los enlaces de claves se definen entre < , por ejemplo, <Enter> (Ingrese > tecla), <Down> (flecha hacia abajo), <Up> (Arrow 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 operadorPuede definir diferentes valores según el sistema operativo actual. Cualquier valor en config se puede envolver con un operador $ select . Para proporcionar diferentes valores basados en el sistema operativo actual, defina un objeto con:
$select: osmacos: value . Los valores posibles se enumeran aquí: https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value coincidirá si no se definió ningún valor para el sistema operativo actual. Si el sistema operativo actual no coincide y el campo $else le faltan, entonces los mPROCS no cargarán la configuración. Ejemplo 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 ejecuta MPROCS con un argumento --npm , cargará scripts de package.json . Pero los scripts no se ejecutan de forma predeterminada, y puede iniciar scripts deseados manualmente.
# Run mprocs with scripts from package.json
mprocs --npmLista de procesos enfocado:
q - Salga (procesos de matar suaves y espere para salir)Q - Force Quit (termine los procesos)Ca - Panel de salida de enfoquex - Proceso seleccionado de Kill Soft (enviar señal Sigterm, Hard Kill en Windows)X - Proceso seleccionado para matar duro (envíe Sigkill)s - Inicie el proceso seleccionado, si no se está ejecutandor - proceso de matar suave seleccionado y reiniciarlo cuando se detengaR - Hard Kill Selected Process y reiniciarlo cuando se detengaa - Agregar nuevo procesoC - proceso duplicado seleccionadod - Eliminar el proceso seleccionado (el proceso debe detenerse primero)e - Cambiar el nombre del proceso seleccionadok o ↑ - Seleccione el proceso anteriorj o ↓ - seleccione el siguiente procesoM-1 - M-8 -Seleccione Proceso 1-8Cd o page down : desplazarse hacia abajoCu o page up - Salida de desplazamiento hacia arribaCe - Desplácese de salida por 3 líneasCy - desplazamiento de salida por 3 líneasz - Zoom en la ventana de la terminalv - Ingrese el modo de copiaSalida del proceso enfocado:
Ca - Panel de procesos de enfoqueModo de copia:
v - Comience a seleccionar el punto finalc - Copiar texto seleccionadoEsc - Dejar el modo de copiaCa - Panel de procesos de enfoqueCd o page down : desplazarse hacia abajoCu o page up - Salida de desplazamiento hacia arribaCe - Desplácese de salida por 3 líneasCy - desplazamiento de salida por 3 líneash o ↑ - Mueve el cursor hacia arribal o → - mover el cursor correctoj o ↓ - mueve el cursor hacia abajoh o ← - Mueva el cursor a la izquierda Opcionalmente, los MPROCS pueden escuchar en el puerto TCP para comandos remotos. Debe definir la dirección del servidor de control remoto en mprocs.yaml ( server: 127.0.0.1:4050 ) o a través del argumento CLI ( mprocs --server 127.0.0.1:4050 ). Para enviar un comando para ejecutar la instancia mproCS , use el argumento CTL : mprocs --ctl '{c: quit}' o mprocs --ctl '{c: send-key, key: <Cc>}' .
Los comandos están codificados como YAML. Comandos disponibles:
{c: quit-or-ask} -Detener los procesos y dejar de fumar. Si se están ejecutando algún proceso, muestre un diálogo de confirmación.{c: quit} - Detener procesos y salir. No muestra el diálogo Confirmar.{c: force-quit}{c: toggle-focus} - Alternar el enfoque entre la lista de procesos y el terminal.{c: focus-procs} - Lista de procesos de enfoque{c: focus-term} - Ventana de terminal de procesos de enfoque{c: zoom} - Zoom en la ventana Terminal{c: next-proc}{c: prev-proc}{c: select-proc, index: <PROCESS INDEX>} - Seleccionar proceso por índice, el proceso superior tiene índice 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>"} - Cambiar el nombre del proceso actualmente seleccionado{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} -Ingrese el modo de copia{c: copy-mode-leave} -Deja el modo de copia{c: copy-mode-move, dir: <DIRECTION> } -Mueva la posición de inicio o finalización de la selección. Instrucciones disponibles: up/right/down/left .{c: copy-mode-end} -Comience a seleccionar el punto final de la selección.{c: copy-mode-copy} -Copie el texto seleccionado al portapapeles y deje el modo de copia.{c: send-key, key: "<KEY>"} - Enviar la clave al proceso actual. Ejemplos clave: <Ca> , <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - Enviar múltiples comandos MPROCS está destinado a facilitar la ejecución de comandos específicos que termina ejecutando repetidamente, como compiladores y corredores de prueba. Esto está en contraste con TMUX , que generalmente se usa para ejecutar procesos mucho más de larga vida, generalmente una carcasa, en cada ventana/panel. Otra diferencia es que TMUX ejecuta un servidor y un cliente, lo que permite que el cliente se separe y vuelva a colocar más tarde, manteniendo los procesos en funcionamiento. MPROCS se entiende más para procesos finitos de por vida que se mantiene en funcionamiento, pero cuando termina MPROCS , también lo hacen los procesos que se está ejecutando dentro de sus ventanas.
TMUX no tiene secuencias de escape para copiar habilitadas de forma predeterminada. Para habilitarlo, agregue lo siguiente a ~/.tmux.conf :
set -g set-clipboard on