O MPROCS executa vários comandos em paralelo e mostra a saída de cada comando separadamente.
Quando você trabalha em um projeto, muitas vezes precisa da mesma lista de comandos para estar em execução. Por exemplo: webpack serve , jest --watch , node src/server.js . Com os MPROCs, você pode listar esses comando em mprocs.yaml e executar todos eles executando mprocs . Em seguida, você pode alternar entre saídas dos comandos em execução e interagir com eles.
É semelhante ao simultaneamente, mas o MPROCS mostra a saída de cada comando separadamente e permite interagir com processos (você pode até trabalhar no VIM dentro do MPROCS ).


Faça o download do executável para sua plataforma e coloque -o em um diretório incluído no caminho.
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 … (Exemplo: mprocs "yarn test -w" "webpack serve" )OU
mprocs.yamlmprocs Exemplo mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testEsquema de configuração JSON/YAML
Existem dois tipos de configurações: global e local. A configuração global é carregada de ~/.config/mprocs/mprocs.yaml (ou ~AppDataRoamingmprocsmprocs.yaml no Windows). A configuração local é carregada de mprocs.yaml a partir do diretório atual (ou definido via CLI Argument: mprocs --config ./cfg/mprocs.yaml ). Configurações nas configurações de substituição de configuração local The Global .
<CONFIG_DIR> será substituído pelo caminho do diretório em que a configuração está localizada.x ou ao desistir dos MProcs).As ligações de chave padrão podem ser substituídas na configuração usando os campos keymap_procs , keymap_term ou keymap_copy . Os comandos disponíveis estão documentados na seção de controle remoto.
Existem três níveis de keyyp:
~/.config/mprocs/mprocs.yaml (ou ~AppDataRoamingmprocsmprocs.yaml no Windows)./mprocs.yaml (pode ser substituído pelo -C/-config cli arg) As alavancas mais baixas substituem as ligações dos níveis anteriores. As ligações das chaves dos níveis anteriores podem ser limpas especificando reset: true no mesmo nível que as chaves.
As ligações das chaves são definidas entre < , por exemplo, <Enter> (digite key), > (seta para <Down> ), <Up> (seta para cima), <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 OperadorVocê pode definir valores diferentes, dependendo do sistema operacional atual. Qualquer valor no Config pode ser envolvido com um operador $ select . Para fornecer valores diferentes com base no sistema operacional atual, defina um objeto com:
$select: osmacos: value . Os valores possíveis estão listados aqui: https://doc.rust-lang.org/std/env/constss/constant.os.html.$else: default value será correspondido se nenhum valor foi definido para o sistema operacional atual. Se o sistema operacional atual não for correspondido e o US $else estiver ausente, os MPROCs não conseguirão carregar a configuração. Exemplo 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 Se você executar o MPROCS com um argumento --npm , ele carregará scripts do package.json . Mas os scripts não são executados por padrão e você pode iniciar os scripts desejados manualmente.
# Run mprocs with scripts from package.json
mprocs --npmLista de processos focada:
q - Saia (processos de matança suave e espere para sair)Q - Force Quit (Termine Processos)Ca - Foco Saída Painelx - Soft Kill Selected Process (Enviar sinal de sigterm, matar dura nas janelas)X - Processo selecionado por Kill Hard (Send Sigkill)s - Iniciar o processo selecionado, se não estiver em execuçãor - Soft Kill selecionou Processo e reinicie -o quando pararR - Hard Kill Selecionado Processo e reinicie -o quando parara - adicione novo processoC - Processo selecionado duplicadod - Remova o processo selecionado (o processo deve ser interrompido primeiro)e - renomear o processo selecionadok ou ↑ - selecione Processo anteriorj ou ↓ - selecione o próximo processoM-1 - M-8 -Selecione Processo 1-8Cd ou page down - Role a saída para baixoCu ou page up - Role a saídaCe - Role a saída para baixo por 3 linhasCy - Role a saída por 3 linhasz - Zoom na janela do terminalv - Digite o modo de cópiaSaída do processo focada:
Ca - Focus Processos PaneModo de cópia:
v - Comece a selecionar o ponto finalc - Copiar texto selecionadoEsc - Deixe o modo de cópiaCa - Focus Processos PaneCd ou page down - Role a saída para baixoCu ou page up - Role a saídaCe - Role a saída para baixo por 3 linhasCy - Role a saída por 3 linhash ou ↑ - mova o cursor para cimal ou → - Mova o cursor à direitaj ou ↓ - mova o cursor para baixoh ou ← - Mova o cursor para a esquerda Opcionalmente, os MPROCs podem ouvir na porta TCP para comandos remotos. Você deve definir o endereço do servidor de controle remoto em mprocs.yaml ( server: 127.0.0.1:4050 ) ou via argumento da CLI ( mprocs --server 127.0.0.1:4050 ). Para enviar um comando para executar a instância do MPROCS , use o argumento CTL : mprocs --ctl '{c: quit}' ou mprocs --ctl '{c: send-key, key: <Cc>}' .
Os comandos são codificados como YAML. Comandos disponíveis:
{c: quit-or-ask} -Parar processos e desistir. Se algum processo estiver em execução, mostre uma caixa de diálogo de confirmação.{c: quit} - Parada de processos e saia. Não mostra a caixa de diálogo Confirmar.{c: force-quit}{c: toggle-focus} - alterne o foco entre a lista de processos e o terminal.{c: focus-procs} - Lista de processos de foco{c: focus-term} - Focus Process Terminal Janela{c: zoom} - zoom na janela do terminal{c: next-proc}{c: prev-proc}{c: select-proc, index: <PROCESS INDEX>} - Selecione Processo por índice, o processo superior possui Í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>"} - renomear o processo atualmente selecionado{c: scroll-down}{c: scroll-up}{c: scroll-down-lines, n: <COUNT>}{c: scroll-up-lines, n: <COUNT>}{c: copy-mode-enter} -insira o modo de cópia{c: copy-mode-leave} -deixe o modo de cópia{c: copy-mode-move, dir: <DIRECTION> } -Mova a posição inicial ou final da seleção. Instruções disponíveis: up/right/down/left .{c: copy-mode-end} -comece a selecionar o ponto final da seleção.{c: copy-mode-copy} -copie o texto selecionado para a área de transferência e deixe o modo de cópia.{c: send-key, key: "<KEY>"} - Envie a chave para o processo atual. Exemplos -chave: <Ca> , <Enter>{c: batch, cmds: [{c: focus-procs}, …]} - envie vários comandos O MPROCS visa facilitar a execução de comandos específicos que você acaba executando repetidamente, como compiladores e corredores de teste. Isso contrasta com o TMUX , que geralmente é usado para executar processos de vida muito mais longa - geralmente uma concha - em cada janela/painel. Outra diferença é que o TMUX executa um servidor e um cliente, o que permite ao cliente se destacar e reattach posteriormente, mantendo os processos em execução. O MPROCS significa mais para os processos de vida finita que você mantém novamente, mas quando o MPROCS termina, o mesmo acontece com os processos, ele está sendo executado dentro de suas janelas.
O TMUX não possui sequências de fuga para cópia ativadas por padrão. Para habilitá -lo, adicione o seguinte a ~/.tmux.conf :
set -g set-clipboard on