Существует три различных класса параметров: сервер, сеанс и окно. Эти классы являются эксклюзивными: каждый параметр принадлежит только одному из классов. Между классами опций никогда не бывает наследства.
Существует только один уровень параметров сервера, поэтому здесь нет наследования (хотя вы можете иметь несколько независимых серверов, используя флаги командной строки -L
или -S
).
Каждый из параметров сеанса и окна использует двухуровневую иерархию: глобальные параметры сеанса (окна) предоставляют значения по умолчанию для параметров сеанса (окна), которые не установлены. Параметры сеанса и окна изначально не установлены, поэтому новые сеансы / окна будут автоматически использовать глобальные значения параметров сеанса / окна.
Когда опция сеанса установлена (set-option
), вновь установленное значение переопределит глобальное значение для этого сеанса. Чтобы вернуться к использованию глобального значения, отмените параметр (set-option -u
). Изменения глобальных значений параметров сеанса будут влиять на все сеансы, в которых этот параметр в настоящее время не установлен. Та же идея применима к параметрам окна (за исключением того, что установка параметра окна переопределяет значение для отдельного окна вместо отдельного сеанса).
Например, чтобы найти эффективное значение параметра сеанса с base-index
для конкретного сеанса:
- Проверьте опцию
base-index
сеанса (то есть то, что вы получаете из tmux -t «target-session» show-options base-index
*).
- Если у сеанса есть значение
base-index
, используйте его.
- Если значение сеанса не было установлено, используйте глобальное значение (то есть то, что вы получите из
tmux show-options -g base-index
).
Аналогично, чтобы найти эффективное значение для опции окна mode-keys
для определенного окна:
- Проверьте опцию
mode-keys
окна (то есть, что вы получаете из tmux -t «target-window» show-options -w mode-keys
**).
- Если у окна есть значение
mode-keys
, используйте его.
- Если значение окна не было установлено, используйте глобальное значение (то есть то, что вы получите из
tmux show-options -gw mode-keys
).
* Старые версии tmux не принимают аргумент имени опции для show-options
. В этих версиях вам нужно будет сделать что-то вроде grep : tmux -t target show-options | grep '^base-index '
.
** Это то же самое, что и tmux show-window-options base-index
, если вам это нравится больше. Связанная команда для опций глобального окна: tmux show-window-options -g base-index
.
Вот схема:
.---------------.
( 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)