Ihre Konfigurationsdatei funktioniert, es gibt jedoch einige Komplikationen.
Kurzzeitige Befehle
Erstens werden die von Ihnen gestarteten Befehle ( ls- Instanzen ) sehr schnell ausgeführt. Die Fenster und Fensterbereiche für die Befehle werden erstellt, verschwinden jedoch, sobald jeder Befehl beendet wird.
Wenn es Ihr Ziel ist, solche "One Shot" -Befehle tatsächlich in Ihrer endgültigen Konfiguration zu verwenden, sollten Sie wahrscheinlich die Fensteroption verwenden remain-on-exit
(und möglicherweise die Sitzungsoption set-remain-on-exit
, um einen Standard für alle in der Sitzung erstellten Fenster bereitzustellen). Wenn remain-on-exit
für ein Fenster festgelegt ist, wird es beim Beenden des Befehls nicht ausgeblendet. Möglicherweise möchten Sie die respawn-window
einem Schlüssel zuordnen (Hinweis: respawn-window
Der ursprüngliche Befehl wird neu erzeugt; respawn-pane
ist auch in tmux 1.5 verfügbar, um einzelne Fenster neu zu erzeugen ).
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
Oder, wenn es Ihnen nichts ausmacht, wenn Ihr Anfangsfenster die Nummer 1 anstelle der Nummer 0 ist, können wir vermeiden, den globalen Wert zu ändern:
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
Wenn Sie nur ls
einen vereinfachten Platzhalterbefehl verwenden und tatsächlich beabsichtigen, einen interaktiven Befehl in Ihren Fenstern / Fenstern zu erzeugen, sollten Sie wahrscheinlich nur den Befehl erzeugen, den Sie später ausführen möchten. Wenn der gewünschte Befehl zu lange dauert es bis zur Inbetriebnahme während verwendet tmux Tests ersetzen dann eine Shell oder andere einfachen interaktiven Befehl (zB top
, sqlite3
usw.).
new-session
Ist der Standardbefehl
Zweitens ist das Ausführen von tmux ohne ein Befehlsargument (z. B. tmux
) gleichbedeutend mit dem Verwenden des new-session
Befehls (dh tmux
dasselbe wie tmux new-session
). Sie .tmux.conf
erstellen eine Sitzung für ihre Fenster / Fensterbereiche ( new
ist ein Alias für new-session
) und eine andere Sitzung wird für den impliziten new-session
Befehl erstellt, der durch Starten von tmux ohne Befehlsargument angegeben wird . Wenn Sie die Standardstatusleiste verwenden, wird [1]
links in der Statusleiste ein angezeigt, wenn Sie sich in der zusätzlichen Sitzung befinden (die erste Sitzung, die in erstellt wurde, .tmux.conf
ist die Nummer 0).
Wenn Sie das Erstellen der zusätzlichen Sitzung vermeiden möchten, verwenden Sie tmux attach
statt plain tmux
. Die Befehle von Ihrem .tmux.conf
werden ausgeführt und erstellen Sitzung 0, und dann wird Ihr Client an diese Sitzung angefügt, anstatt eine neue zu erstellen.
splitw
- sonst nichts - enthält, und ich bekomme immer noch keinen geteilten Bildschirm, weil er es sagt Die aktuelle Sitzung kann nicht hergestellt werden. Wenn ichnew
davor hinzufüge , bekomme ich ... ein Fenster, eine Scheibe. Ich kann nicht scheinen, damit das Leben von mir zwei Scheiben beim Start erhält.