MPROCS запускает несколько команд параллельно и показывает вывод каждой команды отдельно.
Когда вы работаете над проектом, вам очень часто нужен один и тот же список команд. Например: webpack serve , jest --watch , node src/server.js . С помощью MPROC вы можете перечислить эти команды в mprocs.yaml и запустить все из них, используя mprocs . Затем вы можете переключаться между выходами запуска команд и взаимодействовать с ними.
Он похож на одновременно, но MPROCS показывает выходные данные каждой команды отдельно и позволяет взаимодействовать с процессами (вы даже можете работать в VIM внутри MPROCS ).


Загрузите исполняемый файл для вашей платформы и поместите его в каталог, включенный в путь.
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.yamlmprocs Пример mprocs.yaml :
procs :
nvim :
cmd : ["nvim"]
server :
shell : " nodemon server.js "
webpack : " webpack serve "
tests :
shell : " jest -w "
env :
NODE_ENV : testСхема конфигурации JSON/YAML
Есть два вида конфист: глобальных и локальных. Глобальная конфигурация загружается из ~/.config/mprocs/mprocs.yaml (или ~AppDataRoamingmprocsmprocs.yaml в Windows). Локальная конфигурация загружается из mprocs.yaml из текущего каталога (или установлена через аргумент CLI: mprocs --config ./cfg/mprocs.yaml ). Настройки в локальном конфигурации Настройки глобального .
<CONFIG_DIR> будет заменен пути каталога, где находится конфигурация.x ключ или при отходе MPROC).Привязки ключей по умолчанию могут быть переопределены в конфигурации с использованием полей KEYMAP_PROCS , KEYMAP_ERM или KEYMAP_COPY . Доступные команды задокументированы в разделе дистанционного управления.
Есть три уровня Keymap:
~/.config/mprocs/mprocs.yaml (или ~AppDataRoamingmprocsmprocs.yaml в Windows)./mprocs.yaml (может быть переопределена -confic cli arg) Более низкие рычаги переопределяют привязки с предыдущих уровней. Ключевые привязки с предыдущих уровней могут быть очищены путем указания reset: true поле на том же уровне, что и клавиши.
Ключевые привязки определяются между < и > , например, <Enter> (enter -клавиша), <Down> (стрелка вниз), <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 OperatorВы можете определить различные значения в зависимости от текущей операционной системы. Любое значение в конфигурации может быть завершено оператором $ select . Для предоставления различных значений на основе текущей ОС определить объект с помощью:
$select: osmacos: value . Возможные значения перечислены здесь: https://doc.rust-lang.org/std/env/consts/constant.os.html.$else: default value будет сопоставлено, если для текущей ОС не было определено. Если текущая ОС не сопоставлена, а поле $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 Если вы запустите MPROCS с аргументом --npm , он будет загружать сценарии из package.json . Но сценарии не выполняются по умолчанию, и вы можете запустить желаемые сценарии вручную.
# Run mprocs with scripts from package.json
mprocs --npmСписок процессов сфокусирован:
q - Выйти (процессы мягких убийств и подождите, чтобы выйти)Q - Force Ofit (прекратить процессы)Ca - Фокус -выходной панельx - Soft Kill Selected Process (отправьте сигнал Sigterm, жесткое убийство в Windows)X - выбранное процесс жесткого убийства (Send Sigkill)s - начать выбранный процесс, если он не работаетr - Soft Kill Selected Process и перезапустите его, когда он останавливаетсяR - жесткий убийство выбранного процесса и перезапустить его, когда он останавливаетсяa - добавить новый процессC - дубликат выбранного процессаd - удалить выбранную процесс (сначала процесс должен быть остановлен)e - переименование выбранного процессаk или ↑ - выберите предыдущий процессj или ↓ - выберите следующий процессM-1 - M-8 -выберите процесс 1-8Cd или 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 --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} - 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 , который обычно используется для запуска гораздо более долгоживущих процессов - обычно оболочка - в каждом окне/панели. Другое отличие состоит в том, что TMUX запускает сервер и клиента, что позволяет клиенту отсоединить и приехать позже, сохраняя процессы работы. MPROCS предназначена больше для конечных процессов жизни, которые вы продолжаете переработать, но когда MProcs заканчивается, так и процессы, которые он работает в своих окнах.
TMUX не имеет последовательностей Escape для копирования, включенных по умолчанию. Чтобы включить, добавить следующее в ~/.tmux.conf :
set -g set-clipboard on