Существует три различных класса параметров: сервер, сеанс и окно. Эти классы являются эксклюзивными: каждый параметр принадлежит только одному из классов. Между классами опций никогда не бывает наследства.
Существует только один уровень параметров сервера, поэтому здесь нет наследования (хотя вы можете иметь несколько независимых серверов, использующих флаги -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)
show -s
. Однако с точки зрения использования, параметры сервера не являются необходимыми IMHO.-g
и удалять-s
только ради простоты UX. Я просто не получаю никакой выгоды, зная, что опция - это опция сервера.