MPROCSは複数のコマンドを並行して実行し、各コマンドの出力を個別に表示します。
プロジェクトに取り組むときは、実行するために同じコマンドのリストが必要になることが非常によくあります。例: webpack serve 、 jest --watch 、 node src/server.js 。 MPROCSを使用すると、これらのコマンドをmprocs.yamlにリストし、 mprocsを実行してすべてを実行できます。次に、実行中のコマンドの出力を切り替えて、それらと対話できます。
同時に似ていますが、 MPROCSは各コマンドの出力を個別に表示し、プロセスと対話することができます( MPROCS内のVIMでも作業できます)。


プラットフォームの実行可能ファイルをダウンロードし、パスに含まれるディレクトリに入れます。
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.yamlファイルを作成しますmprocsコマンドを実行します例mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testJSON/YAML構成スキーマ
グローバルとローカルの2種類の構成があります。グローバル構成は~/.config/mprocs/mprocs.yaml (または~AppDataRoamingmprocsmprocs.yaml )からロードされます。ローカル構成は、 mprocs.yamlから現在のディレクトリからロードされます(またはCLI引数を介して設定されています: mprocs --config ./cfg/mprocs.yaml )。ローカル構成の設定は、グローバルをオーバーライドします。
<CONFIG_DIR> 、構成が配置されているディレクトリのパスに置き換えられます。xキーを使用するか、mprocsを終了するとき)。デフォルトのキーバインディングは、 keymap_procs 、 keymap_term 、またはkeymap_copyフィールドを使用して構成でオーバーライドできます。利用可能なコマンドは、リモートコントロールセクションに文書化されています。
3つのキーマップレベルがあります。
~/.config/mprocs/mprocs.yaml (または~AppDataRoamingmprocsmprocs.yaml on windows)./mprocs.yaml - configcli argによってオーバーライドできます)低いレバーは、以前のレベルからバインディングをオーバーライドします。以前のレベルからのキーバインディングは、キーと同じレベルのreset: trueフィールドを指定することでクリアできます。
キーバインディングは、 < 、eg、 <Enter> ( >キー)、 <Down> (down矢印)、 <Up> (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オペレーター現在のオペレーティングシステムに応じて、異なる値を定義できます。構成の任意の値は、$ selectオペレーターでラップできます。現在のOSに基づいて異なる値を提供するには、次のオブジェクトを定義します。
$select: osmacos: value 。可能な値は、https://doc.rustlang.org/std/env/consts/constant.os.htmlにリストされています。$else: default value一致します。現在のOSが一致しておらず、フィールド$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 --npm引数でMPROCSを実行すると、 package.jsonからスクリプトをロードします。ただし、スクリプトはデフォルトで実行されるわけではなく、目的のスクリプトを手動で起動できます。
# Run mprocs with scripts from package.json
mprocs --npmプロセスリストの焦点:
q -QUIT(ソフトキルプロセスと終了を待ちます)Q強制終了(プロセスを終了)Caフォーカス出力ペインxソフトキル選択プロセス(Sigterm Signal、Windowsでハードキルを送信)Xハードキル選択プロセス(Sigkillを送信)s実行されていない場合、選択したプロセスを開始しますr選択したプロセスをソフトキルして、停止したら再起動しますR選択したプロセスをハードキルして、停止したときに再起動しますa新しいプロセスを追加しますC選択したプロセスを複製しますd選択したプロセスを削除します(プロセスを最初に停止する必要があります)e選択したプロセスを変更しますkまたは↑ - 以前のプロセスを選択しますjまたは↓ - 次のプロセスを選択しますM-1 - M-8プロセス1-8を選択しますCdまたは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 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} - フォーカスプロセス端子ウィンドウ{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とは対照的です。もう1つの違いは、 TMUXがサーバーとクライアントを実行することです。これにより、クライアントは後でプロセスを実行し続けることができます。 MPROCSは、再ランニングを続ける有限の生涯プロセスの方が意図されていますが、 MPROCSが終了すると、プロセスがウィンドウ内で実行されています。
TMUXには、デフォルトで有効になっているコピーのエスケープシーケンスがありません。次のものを~/.tmux.confに追加できるようにするには:
set -g set-clipboard on