Istnieją trzy różne klasy opcji: serwer, sesja i okno. Te klasy są wyłączne: każda opcja należy tylko do jednej z klas. Nigdy nie ma dziedziczenia między klasami opcji.
Istnieje tylko jeden poziom opcji serwera, więc nie ma tam dziedziczenia (chociaż możesz mieć wiele niezależnych serwerów za pomocą flag -L
lub -S
wiersza poleceń).
Każda z opcji sesji i okna korzysta z dwupoziomowej hierarchii: globalne opcje sesji (okna) zapewniają domyślne wartości dla opcji sesji (okna), które są nieaktywne. Opcje sesji i okna są początkowo wyłączone, więc nowe sesje / okna będą automatycznie wykorzystywać globalne wartości opcji sesji / okna.
Gdy ustawiona jest opcja sesji ( set-option
), nowo ustawiona wartość zastąpi wartość globalną dla tej sesji. Aby wrócić do korzystania z wartości globalnej, wyłącz opcję ( set-option -u
). Zmiany wartości opcji globalnej sesji wpłyną na wszystkie sesje, w których ta opcja jest obecnie rozbrojona. Ten sam pomysł dotyczy opcji okna (z wyjątkiem ustawienia opcji okna zastępuje wartość dla pojedynczego okna zamiast pojedynczej sesji).
Na przykład, aby znaleźć efektywną wartość base-index
opcji sesji dla określonej sesji:
- Sprawdź
base-index
opcję sesji (tj. Co otrzymujesz z tmux -t «target-session» show-options base-index
* ).
- Jeśli sesja ma
base-index
wartość, użyj jej.
- Jeśli wartość sesji nie została ustawiona, użyj wartości globalnej (tj. Tego, co otrzymujesz
tmux show-options -g base-index
).
Podobnie, aby znaleźć wartość skuteczną dla mode-keys
opcji okna dla określonego okna:
- Sprawdź
mode-keys
opcję okna (tj. Co otrzymujesz z tmux -t «target-window» show-options -w mode-keys
** ).
- Jeśli okno ma
mode-keys
wartość, użyj jej.
- Jeśli wartość okna nie została ustawiona, użyj wartości globalnej (tj. Tego, co otrzymujesz
tmux show-options -gw mode-keys
).
* Starsze wersje tmux nie akceptują argumentu nazwy opcji dla show-options
. Z tych wersji trzeba będzie coś zrobić jak grep na to: tmux -t target show-options | grep '^base-index '
.
** To jest to samo tmux show-window-options base-index
, jeśli bardziej ci się to podoba. Powiązane polecenie dla opcji globalnego okna to tmux show-window-options -g base-index
.
Oto schemat:
.---------------.
( 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
. Jednak z punktu widzenia użytkowania opcje serwera nie są konieczne IMHO.-g
i usuwane-s
ze względu na prostotę UX. Po prostu nie mam żadnych korzyści, wiedząc, że opcja jest opcją serwera.