Я хочу создавать панели tmux программно. Например, у меня есть список команд для выполнения, и я создам сценарий оболочки, который будет запускать команду tmux вместе с командами, которые будут выполняться в каждой панели, динамически. Можете ли вы привести пример?

2 ответа2

0

tmuxify (lib, которую я написал) делает это. Вы можете взглянуть на код, в котором здесь используется команда tmux send-keys чтобы понять, как начать работу.

Имейте в виду, что вам нужно создать разделение, в котором вы хотите сначала выполнить команду. Используйте tmux split-window для этого.

Я также рекомендую прочитать разделы man для обеих команд выше. Это очень хорошо объяснено. Если у вас есть какие-либо сомнения, прокомментируйте ниже.

0

Tmuxinator также делает это хорошо. Это рубиновый гем, который использует yml-файл, который хранит ваши макеты и может программно их настроить.

На странице github есть приличный файл readme, но в основном это так:

Настроить:

mux new [project]
vim the/autogenerated/project.yml # Edit the config to suit

Откройте ваш проект:

mux [project]

Пример конфигурации:

windows:
  - editor:
      layout: tiled
      panes:
        - cd ~/code/source/dir && git status
        - cd ~/code/source/dir && vagrant up && vagrant ssh -- -t 'sudo su; /bin/bash' # log in as sudo, the final /bin/bash keeps the shell open
        - cd ~/code/source/dir && vagrant up && vagrant ssh -- -t 'sudo su some_user && cd ~/mounted/dir/ && vim ./; /bin/bash' # log in, go to your mounted code and vim
        - # do nothing
  - logs: tail -f log/development.log

В качестве примечания: он также может запускать команды при открытии панелей, так что вы можете использовать ssh на некоторых машинах, входить в систему от имени различных пользователей и т.д. И т.д.

Tmuxify также может охватывать ту же почву, поэтому хорошо, что у вас есть варианты. Плохая вещь ... вы должны выбрать;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .