Es gibt drei verschiedene Klassen von Optionen: Server, Sitzung und Fenster. Diese Klassen sind exklusiv: Jede Option gehört nur zu einer der Klassen. Es gibt niemals eine Vererbung zwischen den Optionsklassen.
Es gibt nur eine Ebene von Serveroptionen, daher gibt es dort keine Vererbung (obwohl Sie mehrere unabhängige Server verwenden können, indem Sie die Befehlszeilenflags -L
oder verwenden -S
).
Die Sitzungs- und Fensteroptionen verwenden jeweils eine zweistufige Hierarchie: Die globalen Sitzungsoptionen (Fensteroptionen) stellen Standardwerte für Sitzungsoptionen (Fensteroptionen) bereit, die nicht festgelegt sind. Sitzungs- und Fensteroptionen sind anfangs alle nicht festgelegt, sodass neue Sitzungen / Fenster automatisch die globalen Werte für Sitzungs- / Fensteroptionen verwenden.
Wenn eine Sitzungsoption festgelegt ist ( set-option
), überschreibt der neu festgelegte Wert den globalen Wert für diese Sitzung. Deaktivieren Sie die Option ( set-option -u
), um wieder den globalen Wert zu verwenden . Änderungen an den globalen Sitzungsoptionswerten wirken sich auf alle Sitzungen aus, in denen diese Option derzeit nicht festgelegt ist. Die gleiche Idee gilt für die Fensteroptionen (außer dass das Festlegen einer Fensteroption den Wert für ein einzelnes Fenster anstelle einer einzelnen Sitzung überschreibt).
So ermitteln Sie beispielsweise den effektiven Wert für die base-index
Sitzungsoption für eine bestimmte Sitzung:
- Aktivieren Sie die
base-index
Option der Sitzung (dh was Sie von tmux -t «target-session» show-options base-index
* erhalten ).
- Wenn die Sitzung einen
base-index
Wert hat, verwenden Sie ihn.
- Wenn der Wert der Sitzung nicht festgelegt wurde, verwenden Sie den globalen Wert (dh was Sie erhalten
tmux show-options -g base-index
).
So ermitteln Sie den effektiven Wert für die mode-keys
Fensteroption für ein bestimmtes Fenster:
- Aktivieren Sie die
mode-keys
Option des Fensters (dh was Sie von tmux -t «target-window» show-options -w mode-keys
** erhalten ).
- Wenn das Fenster einen
mode-keys
Wert hat, verwenden Sie ihn.
- Wenn der Wert des Fensters nicht festgelegt wurde, verwenden Sie den globalen Wert (dh was Sie erhalten
tmux show-options -gw mode-keys
).
* Ältere Versionen von tmux akzeptieren kein Argument für den Optionsnamen für show-options
. Mit diesen Versionen müssen Sie so etwas wie grep dafür tun : tmux -t target show-options | grep '^base-index '
.
** Dies ist das gleiche wie tmux show-window-options base-index
, wenn dir das besser gefällt. Der zugehörige Befehl für die globalen Fensteroptionen lautet tmux show-window-options -g base-index
.
Hier ist ein Diagramm:
.---------------.
( server options )
`---------------'
===========================================================
.----------------------.
( global session options ) base-index 1
`---------+--+---------' visual-bell on
--/ \--
--/ \--
+-----/-----+ +-----\-----+
| session X | | session Y |
+-----------+ +-----------+
base-index 0 visual-bell off
effective values for X:
base-index 0 (set)
visual-bell on (global)
effective values for Y:
base-index 1 (global)
visual-bell off (set)
===========================================================
.---------------------.
( global window options ) pane-base-index 1
`---------+++---------' mode-keys emacs
---/ | \---
--/ | \---
---/ | \---
---/ | \---
+-------/----+ +------+-----+ +------\-----+
| window X.0 | | window X.1 | | window Y.0 |
+------------+ +------------+ +------------+
pane-base-index 0 mode-keys vi
mode-keys vi
effective values for X.0:
pane-base-index 0 (set)
mode-keys vi (set)
effective values for X.1:
pane-base-index 1 (global)
mode-keys emacs (global)
effective values for Y.0:
pane-base-index 1 (global)
mode-keys vi (set)
show -s
. Aus Sicht der Nutzung sind IMHO jedoch keine Serveroptionen erforderlich.-g
und entfernt werden-s
. Ich bekomme einfach keinen Vorteil, wenn ich weiß, dass eine Option eine Serveroption ist.