Hay tres clases distintas de opciones: servidor, sesión y ventana. Estas clases son exclusivas: cada opción pertenece solo a una de las clases. Nunca hay ninguna herencia entre las clases de opciones.
Solo hay un nivel de opciones de servidor, por lo que no hay herencia allí (aunque puede tener varios servidores independientes utilizando los indicadores de línea de comando -L
o -S
).
Las opciones de sesión y ventana utilizan una jerarquía de dos niveles: las opciones de sesión global (ventana) proporcionan valores predeterminados para las opciones de sesión (ventana) que no están configuradas. Las opciones de sesión y ventana están inicialmente desarmadas, por lo que las nuevas sesiones / ventanas usarán automáticamente los valores de opción de sesión / ventana global.
Cuando se establece una opción de sesión ( set-option
), el valor recién establecido anulará el valor global para esa sesión. Para volver a usar el valor global, desactive la opción ( set-option -u
). Los cambios en los valores de la opción de sesión global afectarán a todas las sesiones en las que esa opción no esté configurada actualmente. La misma idea se aplica a las opciones de la ventana (excepto que establecer una opción de ventana anula el valor de una ventana individual en lugar de una sesión individual).
Por ejemplo, para encontrar el valor efectivo de la base-index
opción de sesión para una sesión particular:
- Verifique la
base-index
opción de la sesión (es decir, lo que obtiene de tmux -t «target-session» show-options base-index
* ).
- Si la sesión tiene un
base-index
valor, úselo.
- Si no se configuró el valor de la sesión, utilice el valor global (es decir, de qué obtiene
tmux show-options -g base-index
).
Del mismo modo, para encontrar el valor efectivo de la mode-keys
opción de ventana para una ventana en particular:
- Verifique la
mode-keys
opción de la ventana (es decir, lo que obtiene de tmux -t «target-window» show-options -w mode-keys
** ).
- Si la ventana tiene un
mode-keys
valor, úselo.
- Si no se configuró el valor de la ventana, utilice el valor global (es decir, de qué obtiene
tmux show-options -gw mode-keys
).
* Las versiones anteriores de tmux no aceptan un argumento de nombre de opción para show-options
. Con estas versiones, tendrá que hacer algo como grep para ello: tmux -t target show-options | grep '^base-index '
.
** Esto es lo mismo que tmux show-window-options base-index
, si te gusta más. El comando relacionado para las opciones de la ventana global es tmux show-window-options -g base-index
.
Aquí hay un diagrama:
.---------------.
( 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
. Sin embargo, desde la perspectiva de uso, las opciones del servidor no son necesarias en mi humilde opinión.-g
y eliminar-s
solo por simplicidad UX. Simplemente no obtengo ningún beneficio al saber que una opción es una opción de servidor.