Створення конфігурацій tmux, які можна запустити?


24

Я часто можу робити те саме tmux:

  1. cd в заданий каталог.
  2. tmux
  3. Перейменуйте вікно на те, що я роблю.
  4. Розбийте вікно вертикально на 50%.
  5. Почніть один процес у лівому вікні.
  6. Почніть інший процес у правому вікні.
  7. Прибуток.

Чи є в мене спосіб автоматизувати запуск всього цього, щоб я міг запустити одну команду і отримати потрібне вікно?


Що з псевдонімом оболонки?
Марко

Відповіді:


22

Archwiki економить день! Ініціалізація сесії на сторінці tmux дає приклад.

Це сказало, замість того, щоб запускати tmux як tmux, tmux new -s nameбуде називати сеанс, коли він починається, а не давати йому номер.

Ініціалізація сеансу


Ви можете мати tmux відкрити сеанс із попередньо завантаженими вікнами, включивши ці деталі у свій ~ / .tmux.conf:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

Щоб розпочати сеанс із розділених вікон (декількох панелей), включіть команду splitw під новий neww, який ви хочете розділити; таким чином:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

відкриється 2 вікна, друге з яких буде названо foo / bar і розділилося б вертикально навпіл (50%) з foo, що працює над бар. Фокус був би у вікні 2 (foo / bar), верхній частині (foo).

Примітка: Нумерація сесій, вікон та панелей починається з нуля, якщо ви не вказали базовий індекс 1 у .conf

Щоб керувати кількома сеансами, джерело окремих файлів сеансу з вашого конф-файлу:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar

6

Роба відповідь великий , і пояснює , як саме обробляти сеанси зсередини tmux себе. Тепер, якщо ви не заперечуєте проти використання стороннього інструменту, tmuxinator - це чудовий проект, який допомагає легко створювати та керувати сесіями .

Кожен сеанс контролюється конфігураційним файлом, який дозволяє визначати всі ваші вікна та області, а також їх макети та команди за замовчуванням для запуску в них. Це також дозволяє визначити каталог проектів за замовчуванням, конкретний сокет і демони, які потрібно запустити (наприклад, mysql). Щоб завершити це, він пропонує простий спосіб приєднати до них також: просто запустіть mux [session-name]і він або запустить сеанс, або приєднається до нього, якщо він вже запущений. Я вже трохи використовую його зараз і люблю (дякую азіз !).

https://github.com/aziz/tmuxinator

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.