Czy tworzysz konfigurowalne konfiguracje tmux?

24

Często robię to samo z tmux:

  1. cd do podanego katalogu.
  2. tmux
  3. Zmień nazwę okna na to, co robię.
  4. Podziel okno w pionie 50%.
  5. Rozpocznij jeden proces w lewym oknie.
  6. Rozpocznij inny proces w prawym oknie.
  7. Zysk.

Czy istnieje sposób na zautomatyzowanie uruchamiania tego wszystkiego, aby móc uruchomić jedno polecenie i uzyskać okno, którego szukam?

Naftuli Kay
źródło
Co z aliasem powłoki?
Marco

Odpowiedzi:

22

Archwiki ratuje dzień! Przykład inicjacji sesji na stronie tmux.

To powiedziawszy, zamiast uruchamiać tmux as tmux, tmux new -s namenazwa sesji zostanie rozpoczęta, zamiast dać jej numer.

Inicjalizacja sesji


Możesz kazać Tmuxowi otworzyć sesję z fabrycznie załadowanymi oknami, włączając te szczegóły w ~ / .tmux.conf:

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

Aby rozpocząć sesję z podzielonymi oknami (wiele okien), dołącz polecenie splitw poniżej nowego okna, które chcesz podzielić; a zatem:

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

otworzy 2 okna, z których drugie nosi nazwę foo / bar i zostanie podzielone pionowo na pół (50%) z foo powyżej paska. Fokus byłby w oknie 2 (foo / bar), w górnym okienku (foo).

Uwaga: Numeracja sesji, okien i paneli zaczyna się od zera, chyba że w pliku .conf podałeś indeks podstawowy 1

Aby zarządzać wieloma sesjami, źródło oddzielnych plików sesji z pliku conf:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar
Obrabować
źródło
6

Odpowiedź Roba jest świetna i dokładnie wyjaśnia, jak radzić sobie z sesjami z poziomu samego tmux. Teraz, jeśli nie masz nic przeciwko użyciu narzędzia innej firmy, tmuxinator to świetny projekt, który pomaga w łatwym tworzeniu sesji i zarządzaniu nimi .

Każda sesja jest kontrolowana przez plik konfiguracyjny, który pozwala zdefiniować wszystkie okna i panele wraz z ich układami i domyślnymi poleceniami do uruchomienia w nich. Pozwala także zdefiniować domyślny katalog projektu, określone gniazdo i demony, które muszą być uruchomione (np. Mysql). Co więcej, zapewnia również łatwą metodę dołączania do nich: po prostu uruchom mux [session-name]i rozpocznie sesję lub dołącz do niej, jeśli jest już uruchomiona. Używam go od jakiegoś czasu i uwielbiam (dzięki Aziz !).

https://github.com/aziz/tmuxinator

JC Yamokoski
źródło