Il existe trois classes distinctes d'options: serveur, session et fenêtre. Ces classes sont exclusives: chaque option n'appartient qu'à une seule des classes. Il n'y a jamais d'héritage entre les classes d'options.
Il n'y a qu'un seul niveau d'options de serveur, il n'y a donc pas d'héritage (bien que vous puissiez avoir plusieurs serveurs indépendants en utilisant les drapeaux de ligne de commande -L
ou -S
).
Les options de session et de fenêtre utilisent chacune une hiérarchie à deux niveaux: les options globales de session (fenêtre) fournissent des valeurs par défaut pour les options de session (fenêtre) qui ne sont pas définies. Les options de session et de fenêtre sont toutes initialement non définies, donc les nouvelles sessions / fenêtres utiliseront automatiquement les valeurs globales des options de session / fenêtre.
Lorsqu'une option de session est définie ( set-option
), la nouvelle valeur définie remplace la valeur globale de cette session. Pour revenir à l'utilisation de la valeur globale, désactivez l'option ( set-option -u
). Les modifications apportées aux valeurs des options de session globales affecteront toutes les sessions dans lesquelles cette option est actuellement non définie. La même idée s'applique aux options de fenêtre (sauf que la définition d'une option de fenêtre remplace la valeur d'une fenêtre individuelle au lieu d'une session individuelle).
Par exemple, pour trouver la valeur effective de l' base-index
option de session pour une session particulière:
- Vérifiez l'
base-index
option de la session (c'est-à-dire ce que vous obtenez tmux -t «target-session» show-options base-index
* ).
- Si la session a une
base-index
valeur, utilisez-la.
- Si la valeur de la session n'a pas été définie, utilisez la valeur globale (c'est-à-dire ce que vous obtenez
tmux show-options -g base-index
).
De même, pour trouver la valeur effective de l' mode-keys
option de fenêtre pour une fenêtre particulière:
- Vérifiez l'
mode-keys
option de la fenêtre (c'est-à-dire ce que vous obtenez de tmux -t «target-window» show-options -w mode-keys
** ).
- Si la fenêtre a une
mode-keys
valeur, utilisez-la.
- Si la valeur de la fenêtre n'a pas été définie, utilisez la valeur globale (c'est-à-dire ce que vous obtenez
tmux show-options -gw mode-keys
).
* Les versions plus anciennes de tmux n'acceptent pas d'argument de nom d'option pour show-options
. Avec ces versions , vous aurez à faire quelque chose comme grep pour elle: tmux -t target show-options | grep '^base-index '
.
** C'est la même chose que tmux show-window-options base-index
si vous préférez ça. La commande associée pour les options de fenêtre globale est tmux show-window-options -g base-index
.
Voici un schéma:
.---------------.
( 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
. Cependant, du point de vue de l'utilisation, les options de serveur ne sont pas nécessaires à mon humble avis.-g
et supprimées-s
juste pour des raisons de simplicité UX. Je n'obtiens aucun avantage en sachant qu'une option est une option de serveur.