397 Stimmen

Wie kann ich tmux so einstellen, dass beim Start ein bestimmtes Windows geöffnet wird?

Wie kann ich tmux so einrichten, dass es mit dem angegebenen geöffneten Windows startet?

17voto

jassinm Punkte 6923

Schauen Sie mal @ https://github.com/remiprev/teamocil

können Sie Ihre Struktur mit YAML festlegen

windows:
  - name: sample-window
    splits:
      - cmd: vim
      - cmd:
        - ipython
        width: 50
      - cmd:
        height: 25

15voto

rubo77 Punkte 17467

Dieses Skript startet eine Sitzung mit dem Namen "e" und drei Windows

#!/bin/sh 
tmux new-session -s e   -n etc -d 'cd /etc; bash -i'
tmux new-window  -t e:1 -n home   'cd ~; bash -i'
tmux new-window  -t e:2 -n log   'cd /var/log; bash -i'

tmux select-window -t e:1
tmux -2 attach-session -t e

13voto

Randal Schwartz Punkte 33384

Aus meinem "get.all"-Skript, das ich jeden Morgen aufrufe, um eine Reihe von "get.XXX"-Aufträgen auszuführen, die die von mir verfolgte Software aktualisieren. Einige von ihnen beenden sich automatisch. Andere erfordern mehr Interaktion, sobald das "get" beendet ist (z. B. die Aufforderung zum Erstellen von Emacs).

#!/bin/sh
tmux att -t get ||
tmux \
  new -s get -n capp \; \
  send-keys 'get.capp' C-m \; \
  neww -n emacs \; \
  send-keys 'get.emacs' C-m \; \
  neww -n git \; \
  send-keys 'get.git' C-m \; \
  neww -n mini \; \
  send-keys 'get.mini' C-m \; \
  neww -n port \; \
  send-keys 'get.port' C-m \; \
  neww -n rakudo \; \
  send-keys 'get.rakudo' C-m \; \
  neww -n neil \; \
  send-keys 'get.neil && get.neil2 && exit' C-m \; \
  neww -n red \; \
  send-keys 'get.red && exit' C-m \; \
  neww -n cpan \; \
  send-keys 'get.cpan && exit' C-m \; \
  selectw -t emacs

12voto

ks1322 Punkte 31216

Wenn Sie nur den Bildschirm auf 2 Bereiche aufteilen wollen (z.B. horizontal), können Sie diesen Befehl ausführen (kein tmux oder Shell-Skript erforderlich):

tmux new-session \; split-window -h \;

Ihr Bildschirm sieht dann wie folgt aus:

[ks@localhost ~]$                      [ks@localhost ~]$ 

[10] 0:ks@localhost:~*                  "localhost.localdomain" 19:51 31--16

11voto

danbruegge Punkte 1924

Zuerst hatte ich den Ansatz von @jasonwryan aber wenn Sie mehr als 2 Konfigurationen haben, kann es verwirrend werden.

Also habe ich eine Alias-Funktion erstellt:

tmx () {
    tmux "$2" source-file "$HOME/.tmux/$1.conf";
}

Unter ~/.tmux/ Ich habe mehrere Sitzungen für viele Zwecke. Zum Beispiel arbeite ich für verschiedene Unternehmen, die jeweils eine andere Entwicklungsumgebung haben. Mit der Alias-Funktion oben kann ich also einfach aufrufen: tmx company1 und laden Sie die benötigte Konfiguration.

Aktualisierung: Der Zweck von "$2" nach der tmux Befehl ist, dass Sie zusätzliche tmux-Argumente übergeben können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X