- СИНТАКСИС
- ОПИСАНИЕ
- КОМАНДЫ ПО УМОЛЧАНИЮ
- РАСПАРСИВАНИЕ И ВЫПОЛНЕНИЕ КОМАНД
- СИНТАКСИС РАЗБОРА
- КОМАНДЫ
- КЛИЕНТЫ И СЕССИИ
- ОКНА И ПАНЕЛИ
- КЛЮЧЕВЫЕ СОЧЕТАНИЯ
- ОПЦИИ
- ХУКИ
- ПОДДЕРЖКА МЫШИ
- ФОРМАТЫ
- СТИЛИ
- ИМЕНА И ЗАГОЛОВКИ
- ГЛОБАЛЬНАЯ И СЕССИОННАЯ ПЕРЕМЕННЫЕ СРЕДЫ
- СТАТУСНАЯ СТРОКА
- БУФЕРЫ
- РАЗНОЕ
- СООБЩЕНИЯ О ЗАВЕРШЕНИИ РАБОТЫ
- РАСШИРЕНИЯ TERMINFO
- РЕЖИМ УПРАВЛЕНИЯ
- ОКРУЖАЮЩАЯ СРЕДА
- ФАЙЛЫ
- ПРИМЕРЫ
- ССЫЛКИ
- АВТОРЫ
tmux — мультиплексор терминала
СИНТАКСИС
tmux [-2CDhlNuVv] [-c shell-command] [-f file] [-L socket-name] [-S socket-path] [-T features]
[command [flags]]
ОПИСАНИЕ
tmux — это мультиплексор терминала: он позволяет создавать, получать доступ и управлять несколькими терминалами с одного экрана. tmux можно отсоединить от экрана и продолжить его работу в фоновом режиме, а затем повторно подключить.
При запуске tmux создает новое сеанс с одним окном и отображает его на экране. В нижней части экрана отображается строка состояния, которая показывает информацию о текущем сеансе и используется для ввода интерактивных команд.
Сеанс — это набор псевдотерминалов, управляемых tmux. Каждый сеанс имеет одно или несколько окон. Окно занимает весь экран и может быть разделено на прямоугольные панели, каждая из которых является отдельным псевдотерминалом (подробности о псевдотерминалах см. в руководстве pty(4)). Любое количество экземпляров tmux может подключаться к одному и тому же сеансу, и в одном сеансе может быть любое количество окон. После завершения всех сеансов tmux завершает работу.
Каждый сеанс сохраняется и переживет случайное отключение (например, истечение времени ожидания соединения ssh(1)) или намеренное отключение (с помощью сочетания клавиш «C-b d»). tmux можно повторно подключить с помощью:
$ tmux attach
В tmux сеанс отображается на экране клиентом, и все сеансы управляются одним сервером. Сервер и каждый клиент — это отдельные процессы, которые взаимодействуют через сокет в /tmp.
Параметры следующие:
-2 Заставляет tmux предполагать, что терминал поддерживает 256 цветов. Это эквивалентно -T 25.
-C Запускает tmux в режиме управления (см. раздел «РЕЖИМ УПРАВЛЕНИЯ»). При использовании дважды (-CC) отключает эхо.
-c shell-command
Выполняет shell-command с использованием оболочки по умолчанию. При необходимости сервер tmux запускается для получения параметра default-shell. Этот параметр предназначен для обеспечения совместимости с sh(1), когда tmux используется в качестве оболочки входа в систему.
-D Не запускает сервер tmux в качестве демона. Это также отключает параметр exit-empty. При использовании -D команда не может быть указана.
-f file Указывает альтернативный файл конфигурации. По умолчанию tmux загружает системный файл конфигурации из /etc/tmux.conf, если он существует, а затем ищет файл конфигурации пользователя в ~/.tmux.conf или $XDG_CONFIG_HOME/tmux/tmux.conf.
Файл конфигурации — это набор команд tmux, которые выполняются последовательно при первом запуске сервера. Tmux загружает файлы конфигурации один раз после запуска процесса сервера. Команда source-file может быть использована для загрузки файла позже.
tmux отображает все сообщения об ошибках из команд, содержащихся в файлах конфигурации, в первой созданной сессии и продолжает обрабатывать остальную часть файла конфигурации.
-h Вывести информацию об использовании и выйти.
-L socket-name
tmux хранит серверный сокет в каталоге, расположенном в TMUX_TMPDIR или /tmp, если он не установлен. По умолчанию используется имя default. Этот параметр позволяет указать другое имя сокета, что позволяет запускать несколько независимых серверов tmux. В отличие от -S, полный путь не требуется: все сокеты создаются в каталоге tmux-UID в указанном каталоге или в /tmp. Каталог tmux-UID создается tmux и не должен быть доступен для чтения, записи или выполнения другим пользователям.
Если сокет случайно удален, можно отправить сигнал SIGUSR1 в процесс серверного приложения tmux, чтобы воссоздать его (обратите внимание, что это не удастся, если какие-либо родительские каталоги отсутствуют).
-l Вести себя как оболочка для входа в систему. Этот флаг в настоящее время не имеет эффекта и предназначен для совместимости с другими оболочками при использовании tmux в качестве оболочки для входа в систему.
-N Не запускать сервер, даже если команда обычно это делает (например, new-session или start-server).
-S socket-path
Укажите полный альтернативный путь к серверному сокету. Если указан -S, каталог с сокетами по умолчанию не используется, и любой флаг -L игнорируется.
-T features Установите параметры терминала для клиента. Это разделенный запятыми список параметров. См. параметр terminal-features.
-u Выводить текст в кодировке UTF-8 в терминал, даже если первая установленная переменная среды LC_ALL, LC_CTYPE или LANG не содержит "UTF-8" или "UTF8".
-V Вывести версию tmux.
-v Запросить подробное ведение журнала. Сообщения журнала будут сохранены в файлах tmux-client-PID.log и tmux-server-PID.log в текущем каталоге, где PID — это идентификатор процесса серверного или клиентского приложения. Если указан -v дважды, будет создан дополнительный файл tmux-out-PID.log, содержащий копию всего, что tmux записывает в терминал.
Сигнал SIGUSR2 можно отправить в процесс серверного приложения tmux, чтобы переключить ведение журнала между включенным (как если бы был указан -v) и выключенным.
command [flags]
Это определяет один из набора команд, используемых для управления tmux, как описано в следующих разделах. Если команды не указаны, предполагается, что будет использована команда, указанная в default-client-command, по умолчанию — new-session.
КОМАНДЫ ПО УМОЛЧАНИЮ
tmux можно управлять из подключенного клиента, используя комбинацию клавиш: клавиша-префикс (C-b) по умолчанию, за которой следует клавиша команды.
По умолчанию команды привязаны к следующим клавишам:
C-b Отправить клавишу-префикс (C-b) в приложение.
C-o Повернуть панели в текущем окне вперед.
C-z Приостановить клиент tmux.
! Вывести текущую панель из окна.
" Разделить текущую панель на две: верхнюю и нижнюю.
# Перечислить все буферы вставки.
$ Переименовать текущую сессию.
% Разделить текущую панель на две: левую и правую.
& Убить текущее окно.
' Запросить индекс окна для выбора.
( Переключить подключенный клиент на предыдущую сессию.
) Переключить подключенный клиент на следующую сессию.
, Переименовать текущее окно.
- Удалить наиболее недавно скопированный фрагмент текста.
. Запросить индекс для перемещения текущего окна.
0to 9 Выбрать окна 0-9.
: Открыть командную строку tmux.
; Перейти к ранее активной панели.
= Выбрать буфер для вставки из списка.
? Перечислить все привязки клавиш.
D Выбрать клиент для отключения.
L Переключить подключенный клиент обратно к последней сессии.
[ Войти в режим копирования для копирования текста или просмотра истории.
] Вставить последний скопированный фрагмент текста.
c Создать новое окно.
d Отключить текущий клиент.
f Запросить поиск текста в открытых окнах.
i Отобразить некоторую информацию о текущем окне.
l Перейти к ранее выбранному окну.
m Отметить текущую панель (см. select-pane -m).
M Очистить отмеченную панель.
n Перейти к следующему окну.
o Выбрать следующую панель в текущем окне.
p Перейти к предыдущему окну.
q Кратковременно отобразить индексы панелей.
r Принудительно перерисовать подключенный клиент.
s Выбрать новую сессию для подключенного клиента.
t Показать время.
w Выбрать текущее окно.
x Убить текущую панель.
z Переключить состояние масштабирования текущей панели.
{ Поменять текущую панель местами с предыдущей.
} Поменять текущую панель местами со следующей.
~ Показать предыдущие сообщения из tmux, если они есть.
Page Up Войти в режим копирования и прокрутить на одну страницу вверх.
Up, Down
Left, Right
Перейти к панели над, под, слева или справа от текущей панели.
M-1 to M-7 Расположить панели одним из семи предустановленных макетов: even-horizontal, even-vertical, main-horizontal, main-horizontal-mirrored, main-vertical, main-verticalmirrored или tiled.
Space Расположить текущее окно в следующем предустановленном макете.
M-n Перейти к следующему окну с сигналом или индикатором активности.
M-o Повернуть панели в текущем окне назад.
M-p Перейти к предыдущему окну с сигналом или индикатором активности.
C-Up, C-Down
C-Left, C-Right
Изменить размер текущей панели с шагом в одну ячейку.
M-Up, M-Down
M-Left, M-Right
Изменить размер текущей панели с шагом в пять ячеек.
Сочетания клавиш можно изменять с помощью команд bind-key и unbind-key.
РАСПАРСИВАНИЕ И ВЫПОЛНЕНИЕ КОМАНД
tmux поддерживает большое количество команд, которые можно использовать для управления его поведением. Каждая команда имеет имя и может принимать ноль или более флагов и аргументов. Их можно привязать к клавише с помощью команды `bind-key` или запускать из командной строки, скрилла, файла конфигурации или командной строки. Например, одна и та же команда `set-option`, запускаемая из командной строки, из `~/.tmux.conf` и привязанная к клавише, может выглядеть следующим образом:
$ tmux set-option -g status-style bg=cyan
set-option -g status-style bg=cyan
bind-key C set-option -g status-style bg=cyan
Здесь имя команды — ‘set-option’, ‘-g’ — это флаг, а ‘status-style’ и ‘bg=cyan’ — аргументы.
tmux различает разбор команд и их выполнение. Чтобы выполнить команду, tmux необходимо разделить ее на имя и аргументы. Это и есть разбор команд. Если команда запускается из оболочки, ее разбирает оболочка; если команда запускается внутри tmux или из файла конфигурации, ее разбирает tmux. Примеры того, когда tmux разбирает команды:
- в файле конфигурации;
- при вводе в командной строке (см. command-prompt);
- при использовании с bind-key;
- при передаче в качестве аргументов if-shell или confirm-before.
Для выполнения команд у каждого клиента есть «очередь команд». Глобальная очередь команд, не привязанная ни к одному клиенту, используется при запуске для файлов конфигурации, таких как ~/.tmux.conf. Разобранные команды, добавленные в очередь, выполняются по порядку. Некоторые команды, такие как if-shell и confirm-before, разбирают свои аргументы, чтобы создать новую команду, которая вставляется сразу после них. Это означает, что аргументы могут быть разобраны дважды или более — один раз при разборе родительской команды (например, if-shell) и снова при разборе и выполнении ее команды. Команды, такие как if-shell, run-shell и display-panes, останавливают выполнение последующих команд в очереди до тех пор, пока не произойдет определенное событие: if-shell и run-shell — до тех пор, пока не завершится выполнение команды оболочки, а display-panes — до нажатия клавиши. Например, следующие команды:
new-session; new-window
if-shell "true" "split-window"
kill-session
Выполнятся в следующем порядке: new-session, new-window, if-shell, команда оболочки true(1), split-window и kill-session.
В разделе «COMMANDS» перечислены команды tmux и их аргументы.
СИНТАКСИС РАЗБОРА
В этом разделе описывается синтаксис команд, которые разбирает tmux, например, в файле конфигурации или в командной строке. Обратите внимание, что при вводе команд в оболочку их разбирает оболочка — см., например, ksh(1) или csh(1).
Каждая команда заканчивается символом новой строки или точкой с запятой (;). Команды, разделенные точкой с запятой, вместе образуют «последовательность команд» — если команда в последовательности встречает ошибку, последующие команды не выполняются.
Рекомендуется, чтобы точка с запятой, используемая в качестве разделителя команд, записывалась в виде отдельного токена, например, из sh(1):
$ tmux neww \; splitw
Или:
$ tmux neww ';' splitw
Или из командной строки tmux:
neww ; splitw
Однако завершающая точка с запятой также интерпретируется как разделитель команд, например, в следующих sh(1) командах:
$ tmux neww\; splitw
Или:
$ tmux 'neww;' splitw
Как показано в этих примерах, при запуске tmux из командной строки необходимо проявлять особую осторожность при правильном использовании кавычек для точек с запятой:
Точки с запятой, которые должны интерпретироваться как разделитель команд, должны быть экранированы в соответствии с соглашениями оболочки. Для [sh]({filename}../../sh)(1) это обычно означает использование кавычек (например, ‘neww ;’ splitw’) или экранирование (например, ‘neww \; splitw’).
Отдельные точки с запятой или завершающие точки с запятой, которые должны интерпретироваться как аргументы, должны быть экранированы дважды: один раз в соответствии с соглашениями оболочки и второй раз для tmux; например:
$ tmux neww 'foo\;' bar
$ tmux neww foo\\\; bar
Точки с запятой, которые не являются отдельными токенами или не следуют за другим токеном, должны быть экранированы только один раз в соответствии с соглашениями оболочки; например:
$ tmux neww 'foo-;-bar'
$ tmux neww foo-\;-bar
Комментарии обозначаются символом # (без кавычек) — любой оставшийся текст после комментария игнорируется до конца строки.
Если последний символ строки — \, строка объединяется со следующей строкой (символ \ и символ новой строки полностью удаляются). Это называется продолжением строки и применяется как внутри, так и вне заключенных в кавычки строк, а также в комментариях, но не внутри фигурных скобок.
Аргументы команд могут быть указаны в виде строк, заключенных в одинарные (') или двойные кавычки ("), или в виде списков команд, заключенных в фигурные скобки ({}). Это необходимо, когда аргумент содержит какие-либо специальные символы. Строки, заключенные в одинарные и двойные кавычки, не могут занимать несколько строк, за исключением случаев использования продолжения строки. Фигурные скобки могут занимать несколько строк.
Вне кавычек и внутри двойных кавычек выполняются следующие замены:
- Переменные окружения, начинающиеся с $, заменяются их значениями из глобального окружения (см. раздел «ГЛОБАЛЬНАЯ И СЕССИОННАЯ ПЕРЕМЕННАЯ»).
- Ведущая ~ или ~user преобразуется в домашний каталог текущего или указанного пользователя.
- \uXXXX или \uXXXXXXXX заменяется на символ Unicode, соответствующий заданному четырех- или восьмизначному шестнадцатеричному числу.
- При условии, что они предваряются символом \, следующие символы заменяются: \e на символ escape; \r на возврат каретки; \n на новую строку; и \t на символ табуляции.
- \ooo заменяется символом с октальным значением ooo. Требуется три октальные цифры, например \001. Наибольшее допустимое значение символа — \377.
- Любые другие символы, предваряемые символом \, заменяются самими собой (то есть символ \ удаляется) и не рассматриваются как имеющие какое-либо специальное значение — поэтому, например, \; не будет обозначать последовательность команд, а \$ не будет разворачивать переменную окружения.
Фигурные скобки анализируются как файл конфигурации (поэтому такие условия, как «%if», обрабатываются), а затем преобразуются в строку. Они предназначены для того, чтобы избежать необходимости дополнительного экранирования при передаче группы команд tmux в качестве аргумента (например, в if-shell). Эти два примера создают одну и ту же команду — обратите внимание, что при использовании {} дополнительное экранирование не требуется:
if-shell true {
display -p 'brace-dollar-foo: }$foo'
}
if-shell true "display -p 'brace-dollar-foo: }\$foo'"
Фигурные скобки могут быть вложены друг в друга, например:
bind x if-shell "true" {
if-shell "true" {
display "true!"
}
}
Переменные окружения могут быть установлены с помощью синтаксиса «name=value», например «HOME=/home/user». Переменные, установленные во время разбора, добавляются в глобальное окружение. Скрытую переменную можно установить с помощью «%hidden», например:
%hidden MYVAR=42
Скрытые переменные не передаются в окружение процессов, создаваемых tmux. См. раздел «ГЛОБАЛЬНОЕ И СЕССИОННОЕ ОКРУЖЕНИЕ».
Команды могут быть условно обработаны путем заключения их в «%if», «%elif», «%else» и «%endif». Аргумент для «%if» и «%elif» расширяется как формат (см. «ФОРМАТЫ»), и если он оценивается как ложный (ноль или пустой), последующий текст игнорируется до закрывающего «%elif», «%else» или «%endif». Например:
%if "#{==:#{host},myhost}"
set -g status-style bg=red
%elif "#{==:#{host},myotherhost}"
set -g status-style bg=green
%else
set -g status-style bg=blue
%endif
Изменит строку состояния на красный цвет, если выполняется на «myhost», на зеленый, если на «myotherhost», или на синий, если на другом хосте. Условные операторы могут быть заданы в одну строку, например:
%if #{==:#{host},myhost} set -g status-style bg=red %endif
КОМАНДЫ
В этом разделе описываются команды, поддерживаемые tmux. Большинство команд принимают необязательный аргумент -t (и иногда -s) с одним из следующих значений: target-client, target-session, target-window или target-pane. Они указывают клиент, сессию, окно или панель, на которые должна воздействовать команда.
target-client должен быть именем клиента, обычно файлом pty(4), к которому подключен клиент, например, /dev/ttyp1 или ttyp1 для клиента, подключенного к /dev/ttyp1. Если клиент не указан, tmux пытается определить текущий клиент; если это не удается, выдается ошибка. Список клиентов можно получить с помощью команды list-clients.
target-session используется следующим образом, в порядке приоритета:
Идентификатор сессии, начинающийся с $.
Точное имя сессии (как указано в команде list-sessions).
Начало имени сессии, например «mysess» будет соответствовать сессии с именем «mysession».
Шаблон glob(7), который сравнивается с именем сессии.
Если имя сессии начинается с «=», принимается только точное соответствие (поэтому «=mysess» будет соответствовать только точно «mysess», а не «mysession»).
Если найдена одна сессия, она используется в качестве целевой сессии; несколько соответствий вызывают ошибку. Если сессия опущена, используется текущая сессия, если она доступна; если текущая сессия недоступна, выбирается последняя использованная.
`target-window` (или `src-window` или `dst-window`) указывает окно в формате `session:window`.
`session` следует тем же правилам, что и для `target-session`, а `window` ищется в следующем порядке:
Специальный токен, перечисленный ниже.
Индекс окна, например, `mysession:1` — это окно 1 в сессии `mysession`.
Идентификатор окна, например, `@1`.
Точное имя окна, например, `mysession:mywindow`.
Начало имени окна, например, `mysession:mywin`.
Как шаблон `glob(7)`, сопоставляемый с именем окна.
Как и в случае с сессиями, префикс = выполняет только точное сопоставление. Пустое имя окна указывает на следующий
неиспользованный индекс, если это применимо (например, для команд new-window и link-window), в противном случае
выбирается текущее окно в сессии.
Следующие специальные токены доступны для указания определенных окон. У каждого есть альтернативная односимвольная форма.
Токен Значение
{start} ^ Окно с наименьшим номером
{end} $ Окно с наибольшим номером
{last} ! Последнее (предыдущее текущее) окно
{next} + Следующее окно по номеру
{previous} - Предыдущее окно по номеру
`target-pane` (или `src-pane` или `dst-pane`) может быть идентификатором панели или имеет аналогичный формат, что и `target-window`,
но с дополнительным необязательным добавлением точки, за которой следует индекс панели или идентификатор панели, например:
`mysession:mywindow.1`. Если индекс панели опущен, используется текущая активная панель в указанном
окне. Следующие специальные токены доступны для индекса панели:
Токен Значение
{last} ! Последняя (предыдущая активная) панель
{next} + Следующая панель по номеру
{previous} - Предыдущая панель по номеру
{top} Верхняя панель
{bottom} Нижняя панель
{left} Левая панель
{right} Правая панель
{top-left} Верхняя левая панель
{top-right} Верхняя правая панель
{bottom-left} Нижняя левая панель
{bottom-right} Нижняя правая панель
{up-of} Панель над активной панелью
{down-of} Панель под активной панелью
{left-of} Панель слева от активной панели
{right-of} Панель справа от активной панели
Токены + и - могут сопровождаться смещением, например:
`select-window -t:+2`
Кроме того, target-session, target-window или target-pane могут состоять исключительно из токена
{mouse} (альтернативная форма =), чтобы указать сессию, окно или панель, где произошло последнее
событие мыши (см. раздел «ПОДДЕРЖКА МЫШИ»), или {marked} (альтернативная форма ~), чтобы
указать отмеченную панель (см. команду select-pane -m).
Сессии, окна и панели имеют уникальные идентификаторы; идентификаторы сессий имеют префикс $, окон — @, а панелей — %.
Они уникальны и не меняются в течение всего времени работы сессии, окна или панели в сервере tmux.
Идентификатор панели передается дочернему процессу панели в переменной окружения TMUX_PANE.
Идентификаторы можно отображать с помощью форматов session_id, window_id или pane_id (см. раздел «ФОРМАТЫ»)
и команд display-message, list-sessions, list-windows или list-panes.
Аргументы команд оболочки — это команды sh(1). Это может быть один аргумент, передаваемый оболочке, например:
new-window 'vi ~/.tmux.conf'
Выполнит:
/bin/sh -c 'vi ~/.tmux.conf'
Кроме того, команды new-window, new-session, split-window, respawn-window и respawn-pane позволяют передавать команду оболочки в виде нескольких аргументов и выполнять ее напрямую (без использования «sh -c»). Это может помочь избежать проблем с кавычками в оболочке. Например:
$ tmux new-window vi ~/.tmux.conf
Выполнит vi(1) напрямую, не вызывая оболочку.
^ ommand [argument ...] относится к команде tmux, передаваемой либо командой и аргументами отдельно, например:
bind-key F1 set-option status off
Или передаваемой в виде одной строковой аргумента в .tmux.conf, например:
bind-key F1 { set-option status off }
Примеры команд tmux включают:
refresh-client -t/dev/ttyp2
rename-session -tfirst newname
set-option -wt:0 monitor-activity on
new-window ; split-window -d
bind-key R source-file ~/.tmux.conf \; \
display-message "source-file done"
Или из sh(1):
$ tmux kill-window -t :1
$ tmux new-window \; split-window -d
$ tmux new-session -d 'vi ~/.tmux.conf' \; split-window -d \; attach
КЛИЕНТЫ И СЕССИИ
Сервер tmux управляет клиентами, сессиями, окнами и панелями. Клиенты подключаются к сессиям для взаимодействия с ними, либо при их создании с помощью команды new-session, либо позже с помощью команды attach-session. Каждая сессия имеет одно или несколько окон, связанных с ней. Окна могут быть связаны с несколькими сессиями и состоят из одной или нескольких панелей, каждая из которых содержит псевдотерминал. Команды для создания, связывания и управления окнами описаны в разделе «ОКНА И ПАНЕЛИ».
Следующие команды доступны для управления клиентами и сессиями:
attach-session [-dErx] [-c working-directory] [-f flags] [-t target-session]
(alias: attach)
Если запускается извне tmux, подключается к target-session в текущем терминале. target-session должна уже существовать — для создания новой сессии см. команду new-session (с опцией -A для создания или подключения). Если используется внутри, переключает текущую подключенную сессию на target-session. Если указана опция -d, все остальные клиенты, подключенные к сессии, отключаются. Если указана опция -x, отправляет сигнал SIGHUP родительскому процессу клиента, а также отключает клиент, что обычно приводит к его завершению. -f устанавливает список флагов клиента, разделенных запятыми. Флаги:
active-pane
у клиента есть независимая активная панель
ignore-size
клиент не влияет на размер других клиентов
no-detach-on-destroy
не отсоединять клиента, когда сессия, к которой он присоединен, уничтожается, если существуют другие сессии
no-output
клиент не получает вывод панели в режиме управления
pause-after=seconds
вывод приостанавливается, когда панель отстает на указанное количество секунд в режиме управления
read-only
клиент работает в режиме «только чтение»
wait-exit
ждать пустую строку ввода перед выходом в режиме управления
Символ «!» в начале отменяет действие флага, если клиент уже присоединен. `-r` является алиасом для `-f read-only,ignore-size`. Когда клиент работает в режиме «только чтение», только клавиши, привязанные к командам `detach-client` или `switch-client`, имеют эффект. Клиент с флагом `active-pane` позволяет независимо выбирать активную панель, в отличие от активной панели окна, используемой клиентами без этого флага. Это влияет только на положение курсора и команды, выдаваемые из клиента; другие функции, такие как хуки и стили, продолжают использовать активную панель окна.
Если сервер не запущен, attach-session попытается его запустить; это не удастся, если сессии не созданы в файле конфигурации.
Правила для target-session в attach-session немного изменены: если tmux должен выбрать наиболее недавно использованную сессию, он предпочтет наиболее недавно использованную не присоединенную сессию.
`-c` устанавливает рабочую директорию сессии (используется для новых окон) в `working-directory`.
Если используется -E, опция update-environment не будет применена.
detach-client [-aP] [-E shell-command] [-s target-session] [-t target-client]
(алиас: detach)
Отсоединяет текущий клиент, если он привязан к клавише, клиент, указанный с помощью -t, или все клиенты, в настоящее время присоединенные к сессии, указанной с помощью -s. Опция -a уничтожает все клиенты, кроме клиента, указанного с помощью -t. Если указана -P, отправляет сигнал SIGHUP в родительский процесс клиента, что обычно приводит к его завершению. С помощью -E запускается shell-command для замены клиента.
has-session [-t target-session]
(алиас: has)
Сообщает об ошибке и завершает работу с кодом 1, если указанная сессия не существует. Если она существует, завершает работу с кодом 0.
kill-server
Убивает сервер tmux и клиенты и уничтожает все сессии.
kill-session [-aC] [-t target-session]
Уничтожает указанную сессию, закрывая все связанные с ней окна и другие сессии, и отсоединяет все клиенты, присоединенные к ней. Если указана -a, уничтожаются все сессии, кроме указанной. Флаг -C очищает оповещения (звуковые, визуальные или беззвучные) во всех окнах, связанных с сессией.
list-clients [-F format] [-f filter] [-t target-session]
(алиас: lsc)
Отображает список всех клиентов, присоединенных к серверу. -F указывает формат каждой строки, а -f — фильтр. Отображаются только клиенты, для которых фильтр возвращает истинное значение. См. раздел «ФОРМАТЫ». Если указана target-session, отображаются только клиенты, подключенные к этой сессии.
list-commands [-F format] [command]
(alias: lscm)
Выводит синтаксис команды или, если не указано, синтаксис всех команд, поддерживаемых tmux.
list-sessions [-F format] [-f filter]
(alias: ls)
Выводит список всех сессий, управляемых сервером. -F задает формат каждой строки, а -f — фильтр. Отображаются только сессии, для которых фильтр возвращает истину. См. раздел «ФОРМАТЫ».
lock-client [-t target-client]
(alias: lockc)
Блокирует целевой клиент, см. команду lock-server.
lock-session [-t target-session]
(alias: locks)
Блокирует все клиенты, подключенные к целевой сессии.
new-session [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command argument ...]
(alias: new)
Создает новую сессию с именем session-name.
Новая сессия подключается к текущему терминалу, если не указан параметр -d. window-name и shell-command — это имя и команда оболочки для выполнения в начальном окне. При использовании параметра -d начальный размер берется из глобальной опции default-size; параметры -x и -y можно использовать для указания другого размера. «-» использует размер текущего клиента, если он есть. Если указаны параметры -x или -y, опция default-size устанавливается для сессии. Параметр -f задает список флагов клиента, разделенных запятыми (см. attach-session).
Если команда выполняется из терминала, любые специальные символы termios(4) сохраняются и используются для новых окон в новой сессии.
Флаг -A заставляет new-session вести себя как attach-session, если session-name уже существует; при указании -A параметр -D ведет себя как -d для attach-session, а -X — как -x для attach-session.
Если указан параметр -t, он задает группу сессий. Сессии в одной группе используют один и тот же набор окон — новые окна связаны со всеми сессиями в группе, и любые закрытые окна удаляются из всех сессий. Текущее и предыдущее окно и любые параметры сессии остаются независимыми, и любую сессию в группе можно завершить, не затрагивая другие. Аргумент group-name может быть:
именем существующей группы, в этом случае новая сессия добавляется в эту группу;
именем существующей сессии — новая сессия добавляется в ту же группу, что и эта сессия, при необходимости создается новая группа;
именем новой группы, содержащей только новую сессию.
Параметры -n и shell-command недопустимы при использовании -t.
Параметр -P выводит информацию о новой сессии после ее создания. По умолчанию используется формат «\#{session_name}:», но можно указать другой формат с помощью -F.
Если используется -E, опция update-environment не будет применена. Параметр -e имеет вид «VARIABLE=value» и задает переменную среды для вновь созданной сессии; его можно указать несколько раз.
refresh-client [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l [target-pane]] [-r pane:report] [-t target-client] [adjustment]
(alias: refresh)
Обновляет текущий клиент, если он привязан к клавише, или один клиент, если он указан с помощью -t. Если указан параметр -S, обновляется только строка состояния клиента.
Флаги -U, -D, -L, -R и -c позволяют изменять видимую часть окна, которая больше, чем клиент. -U перемещает видимую часть вверх на указанное количество строк, а -D — вниз, -L — влево на указанное количество столбцов, а -R — вправо. -c возвращает автоматическое отслеживание курсора. Если значение смещения не указано, используется значение 1. Обратите внимание, что видимая позиция является свойством клиента, а не окна, и изменение текущего окна в подключенной сессии сбросит ее.
-C устанавливает ширину и высоту клиента в режиме управления или окна для клиента в режиме управления. Размер должен быть в одном из форматов: «ширинаxвысота» или «идентификатор_окна:ширинаxвысота», например, «80x24» или «@0:80x24». -A позволяет клиенту в режиме управления запускать действия в панели. Аргумент представляет собой идентификатор панели (с начальным «%»), двоеточие, а затем одно из значений: «on», «off», «continue» или «pause». Если указано «off», tmux не будет отправлять вывод из панели клиенту, и если все клиенты отключили вывод из панели, tmux прекратит чтение данных из панели. Если указано «continue», tmux возобновит отправку вывода в панель, если она была приостановлена (вручную или с помощью флага pause-after). Если указано «pause», tmux приостановит работу панели. -A можно указать несколько раз для разных панелей.
-B устанавливает подписку на формат для клиента в режиме управления. Аргумент разделяется на три части двоеточиями: имя — это имя подписки; what — это тип элемента для подписки; format — это формат. После добавления подписки изменения в формате сообщаются с помощью уведомления %subscription-changed, не чаще одного раза в секунду. Если указано только имя, подписка удаляется. what может быть пустым, чтобы просто проверить формат для подключенной сессии, или одним из следующих значений: идентификатор панели, например, «%0»; «%*» — для всех панелей в подключенной сессии; идентификатор окна, например, «@0»; или «@*» — для всех окон в подключенной сессии.
-f устанавливает список разделенных запятыми флагов клиента, см. attach-session. -r позволяет клиенту в режиме управления предоставлять информацию о панели с помощью отчета (например, в ответ на OSC 10). Аргумент представляет собой идентификатор панели (с начальным «%»), двоеточие, а затем последовательность escape-кодов отчета.
-l запрашивает буфер обмена из клиента, используя последовательность escape-кодов xterm(1). Если указан target-pane, буфер обмена отправляется (в закодированном виде), в противном случае он сохраняется в новом буфере вставки.
-L, -R, -U и -D перемещают видимую часть окна влево, вправо, вверх или вниз на указанное значение, если окно больше клиента. -c сбрасывает положение, чтобы оно следовало за курсором. См. опцию window-size.
rename-session [-t target-session] new-name
(alias: rename) Переименовывает сессию в new-name.
server-access [-adlrw] [user]
Изменяет права доступа или разрешения на чтение/запись для пользователя. Пользователь, запускающий сервер tmux (его владелец), и пользователь root не могут быть изменены и всегда имеют доступ.
-a и -d используются для предоставления или отзыва прав доступа для указанного пользователя. Если пользователь уже добавлен, флаг -d отключает его клиентов.
-r и -w изменяют разрешения для пользователя: -r делает клиентов пользователя доступными только для чтения, а -w — доступными для записи. -l выводит текущие разрешения.
По умолчанию список доступа пуст, и tmux создает сокеты с разрешениями файловой системы, запрещающими доступ любым пользователям, кроме владельца (и root). Эти разрешения необходимо изменять вручную. Следует соблюдать крайнюю осторожность, чтобы не предоставлять доступ к ненадежным пользователям, даже в режиме «только для чтения».
show-messages [-JT] [-t target-client]
(alias: showmsgs)
Отображает сообщения сервера или информацию. Сообщения хранятся, до максимального предела, установленного параметром message-limit сервера. -J и -T отображают отладочную информацию о задачах и терминалах.
source-file [-Fnqv] [-t target-pane] path ...
(alias: source)
Выполняет команды из одного или нескольких файлов, указанных в path (которые могут быть шаблонами glob(7)). Если указан -F, то path расширяется как формат. Если указан -q, то при отсутствии path не возвращается ошибка. С -n файл анализируется, но команды не выполняются. -v отображает проанализированные команды и номера строк, если это возможно.
start-server
(alias: start)
Запускает сервер tmux, если он еще не запущен, без создания каких-либо сеансов.
Обратите внимание, что по умолчанию сервер tmux завершает работу, если нет сеансов, поэтому это полезно только в том случае, если сеанс создается в ~/.tmux.conf, exit-empty выключен или другая команда выполняется как часть одной и той же последовательности команд. Например:
$ tmux start \; show -g
suspend-client [-t target-client]
(alias: suspendc)
Приостанавливает клиент, отправляя сигнал SIGTSTP (остановка терминала).
switch-client [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]
(alias: switchc)
Переключает текущий сеанс для клиента target-client на target-session. В качестве специального случая, -t может относиться к панели (целевому объекту, содержащему «:», «.» или «%»), чтобы изменить сеанс, окно и панель. В этом случае -Z сохраняет масштаб окна, если оно было масштабировано. Если используются -l, -n или -p, клиент переключается на последний, следующий или предыдущий сеанс соответственно.
-r переключает флаги read-only и ignore-size (см. команду attach-session).
Если используется -E, опция update-environment не будет применена.
-T устанавливает таблицу клавиш клиента; следующий ввод с клиента будет интерпретироваться из key-table. Это можно использовать для настройки нескольких префиксов или для привязки команд к последовательностям клавиш. Например, чтобы при вводе «abc» выполнялась команда list-keys:
bind-key -Ttable2 c list-keys
bind-key -Ttable1 b switch-client -Ttable2
bind-key -Troot a switch-client -Ttable1
ОКНА И ПАНЕЛИ
Каждое окно, отображаемое tmux, может быть разделено на одну или несколько панелей; каждая панель занимает определенную область экрана и является отдельным терминалом. Окно можно разделить на панели с помощью команды split-window. Окна можно разделять по горизонтали (с помощью флага -h) или по вертикали. Размер панелей можно изменять с помощью команды resize-pane (по умолчанию привязана к клавишам ‘C-Up’, ‘C-Down’, ‘C-Left’ и ‘C-Right’), текущая панель может быть изменена с помощью команды select-pane, а команды rotate-window и swap-pane могут использоваться для переключения панелей без изменения их положения. Панели нумеруются, начиная с нуля, в порядке их создания.
По умолчанию панель tmux обеспечивает прямой доступ к терминалу, содержащемуся в этой панели. Панель также может быть переведена в один из нескольких режимов:
- Режим копирования, который позволяет скопировать часть окна или его истории в буфер обмена для последующей вставки в другое окно. В этот режим можно войти с помощью команды `copy-mode`, которая по умолчанию привязана к клавише `[`. Скопированный текст можно вставить с помощью команды `paste-buffer`, которая по умолчанию привязана к клавише `]`.
- Режим просмотра, который аналогичен режиму копирования, но активируется при выполнении команды, которая генерирует вывод, например, `list-keys`, из привязки клавиш.
- Режим выбора, который позволяет выбрать элемент из списка. Это может быть клиент, сеанс, окно или панель, или буфер. В этот режим можно войти с помощью команд `choose-buffer`, `choose-client` и `choose-tree`.
В режиме копирования в правом верхнем углу панели отображается индикатор с текущей позицией и количеством строк в истории.
Команды отправляются в режим копирования с помощью флага -X команды send-keys. При нажатии клавиши режим копирования автоматически использует одну из двух таблиц клавиш в зависимости от опции mode-keys: copy-mode для Emacs или copy-mode-vi для Vi. Таблицы клавиш можно просмотреть с помощью команды list-keys.
Следующие команды поддерживаются в режиме копирования:
append-selection
Добавляет выделенный фрагмент в верхний буфер обмена.
append-selection-and-cancel (vi: A)
Добавляет выделенный фрагмент в верхний буфер обмена и выходит из режима копирования.
back-to-indentation (vi: ^) (emacs: M-m)
Перемещает курсор назад к отступу.
begin-selection (vi: Space) (emacs: C-Space)
Начинает выделение.
bottom-line (vi: L)
Перемещает курсор в последнюю строку.
cancel (vi: q) (emacs: Escape)
Выходит из режима копирования.
clear-selection (vi: Escape) (emacs: C-g)
Очищает текущий выделенный фрагмент.
copy-end-of-line [-CP] [prefix]
Копирует текст от текущей позиции курсора до конца строки. prefix используется для именования нового буфера обмена.
copy-end-of-line-and-cancel [-CP] [prefix]
Копирует текст от текущей позиции курсора и выходит из режима копирования.
copy-pipe-end-of-line [-CP] [command] [prefix]
Копирует текст от текущей позиции курсора до конца строки и передает текст в команду command. prefix используется для именования нового буфера обмена.
copy-pipe-end-of-line-and-cancel [-CP] [command] [prefix]
То же, что и copy-pipe-end-of-line, но также выходит из режима копирования.
copy-line [-CP] [prefix]
Копирует всю строку.
copy-line-and-cancel [-CP] [prefix]
Копирует всю строку и выходит из режима копирования.
copy-pipe-line [-CP] [command] [prefix]
Копирует всю строку и передает текст в команду. prefix используется для именования нового буфера вставки.
copy-pipe-line-and-cancel [-CP] [command] [prefix]
То же, что и copy-pipe-line, но также выходит из режима копирования.
copy-pipe [-CP] [command] [prefix]
Копирует выделенный фрагмент, очищает его и передает текст в команду. prefix используется для именования нового буфера вставки.
copy-pipe-no-clear [-CP] [command] [prefix]
То же, что и copy-pipe, но не очищает выделенный фрагмент.
copy-pipe-and-cancel [-CP] [command] [prefix]
То же, что и copy-pipe, но также выходит из режима копирования.
copy-selection [-CP] [prefix]
Копирует текущий выделенный фрагмент.
copy-selection-no-clear [-CP] [prefix]
То же, что и copy-selection, но не очищает выделенный фрагмент.
copy-selection-and-cancel [-CP] [prefix] (vi: Enter) (emacs: M-w)
Копирует текущий выделенный фрагмент и выходит из режима копирования.
cursor-down (vi: j) (emacs: Down)
Перемещает курсор вниз.
cursor-down-and-cancel
То же, что и cursor-down, но также выходит из режима копирования, если достигнут нижний край.
cursor-left (vi: h) (emacs: Left)
Перемещает курсор влево.
cursor-right (vi: l) (emacs: Right)
Перемещает курсор вправо.
cursor-up (vi: k) (emacs: Up)
Перемещает курсор вверх.
cursor-centre-vertical (emacs: C-l)
Перемещает курсор в вертикальный центр панели.
cursor-centre-horizontal (emacs: M-l)
Перемещает курсор в горизонтальный центр панели.
end-of-line (vi: $) (emacs: C-e)
Перемещает курсор в конец строки.
goto-line line (vi: :) (emacs: g)
Перемещает курсор на указанную строку.
halfpage-down (vi: C-d) (emacs: M-Down)
Прокручивает вниз на половину страницы.
halfpage-down-and-cancel
То же, что и halfpage-down, но также выходит из режима копирования, если достигнут нижний край.
halfpage-up (vi: C-u) (emacs: M-Up)
Прокручивает вверх на половину страницы.
history-bottom (vi: G) (emacs: M->)
Прокручивает до конца истории.
history-top (vi: g) (emacs: M-<)
Прокручивает до начала истории.
jump-again (vi: ;) (emacs: ;)
Повторяет последнее перемещение.
jump-backward to (vi: F) (emacs: F)
Перемещается назад к указанному тексту.
jump-forward to (vi: f) (emacs: f)
Перемещается вперед к указанному тексту.
jump-reverse (vi: ,) (emacs: ,)
Повторяет последнее перемещение в обратном направлении (вперед становится назад, а назад становится вперед).
jump-to-backward to (vi: T)
Перемещается назад, но на один символ меньше, помещая курсор на символ после целевого.
jump-to-forward to (vi: t)
Перемещается вперед, но на один символ меньше, помещая курсор на символ перед целевым.
jump-to-mark (vi: M-x) (emacs: M-x)
Перемещается к последней метке.
middle-line (vi: M) (emacs: M-r)
Перемещается в среднюю строку.
next-matching-bracket (vi: %) (emacs: M-C-f)
Перемещается к следующей соответствующей скобке.
next-paragraph (vi: }) (emacs: M-})
Перемещается к следующему абзацу.
next-prompt [-o]
Перемещается к следующему приглашению.
next-word (vi: w)
Перемещается к следующему слову.
next-word-end (vi: e) (emacs: M-f)
Перемещается в конец следующего слова.
next-space (vi: W)
То же, что и next-word, но в качестве разделителя слов используется только пробел.
next-space-end (vi: E)
То же, что и next-word-end, но в качестве разделителя слов используется только пробел.
other-end (vi: o)
Переключиться, на каком конце выделения находится курсор.
page-down (vi: C-f) (emacs: PageDown)
Прокрутить вниз на одну страницу.
page-down-and-cancel
То же, что и page-down, но также выйти из режима копирования при достижении нижней части.
page-up (vi: C-b) (emacs: PageUp)
Прокрутить вверх на одну страницу.
pipe [command]
Передать выделенный текст в команду и очистить выделение.
pipe-no-clear [command]
То же, что и pipe, но не очищать выделение.
pipe-and-cancel [command] [prefix]
То же, что и pipe, но также выйти из режима копирования.
previous-matching-bracket (emacs: M-C-b)
Перейти к предыдущей соответствующей скобке.
previous-paragraph (vi: {) (emacs: M-{)
Перейти к предыдущему абзацу.
previous-prompt [-o]
Перейти к предыдущему запросу.
previous-word (vi: b) (emacs: M-b)
Перейти к предыдущему слову.
previous-space (vi: B)
То же, что и previous-word, но в качестве разделителя слов используется только пробел.
rectangle-on
Включить режим выделения прямоугольником.
rectangle-off
Выключить режим выделения прямоугольником.
rectangle-toggle (vi: v) (emacs: R)
Переключить режим выделения прямоугольником.
refresh-from-pane (vi: r) (emacs: r)
Обновить содержимое из панели.
scroll-bottom
Прокрутить вверх, пока текущая строка не окажется внизу, при этом курсор остается на этой строке.
scroll-down (vi: C-e) (emacs: C-Down)
Прокрутить вниз.
scroll-down-and-cancel
То же, что и scroll-down, но также выйти из режима копирования, если курсор достигнет нижней части.
scroll-middle (vi: z)
Прокрутить так, чтобы текущая строка стала средней, при этом курсор остается на этой строке.
scroll-top
Прокрутить вверх, пока текущая строка не окажется вверху, при этом курсор остается на этой строке.
scroll-up (vi: C-y) (emacs: C-Up)
Прокрутить вверх.
search-again (vi: n) (emacs: n)
Повторить последний поиск.
search-backward text (vi: ?)
Выполнить поиск назад по указанному тексту.
search-backward-incremental text (emacs: C-r)
Выполнить инкрементный поиск назад по указанному тексту. Предполагается, что он будет использоваться с флагом -i команды command-prompt.
search-backward-text text
Выполнить поиск назад по указанному обычному тексту.
search-forward text (vi: /)
Выполнить поиск вперед по указанному тексту.
search-forward-incremental text (emacs: C-s)
Выполнить инкрементный поиск вперед по указанному тексту. Предполагается, что он будет использоваться с флагом -i команды command-prompt.
search-forward-text text
Выполнить поиск вперед по указанному обычному тексту.
search-reverse (vi: N) (emacs: N)
Повторить последний поиск в обратном направлении (вперед становится назад, а назад становится вперед).
select-line (vi: V)
Выделить текущую строку.
select-word
Выделить текущее слово.
selection-mode [char | word | line]
Изменить режим выделения.
set-mark (vi: X) (emacs: X)
Отметить текущую строку.
start-of-line (vi: 0) (emacs: C-a)
Переместить курсор в начало строки.
stop-selection
Прекратить выделение, не очищая текущее выделение.
toggle-position (vi: P) (emacs: P)
Переключает видимость индикатора позиции в правом верхнем углу.
top-line (vi: H) (emacs: M-R)
Перемещает курсор в начало первой строки.
Команды поиска представлены в нескольких вариантах: ‘search-forward’ и ‘search-backward’ выполняют поиск по регулярному выражению; варианты ‘-text’ выполняют поиск по обычной строке текста, а не по регулярному выражению; ‘-incremental’ выполняет инкрементный поиск и предполагает использование с флагом -i в командной строке. ‘search-again’ повторяет последний поиск, а ‘search-reverse’ делает то же самое, но меняет направление (прямой поиск становится обратным, и наоборот).
Ключевые сочетания для инкрементного поиска по умолчанию, ‘C-r’ и ‘C-s’, предназначены для эмуляции emacs(1). При первом нажатии они позволяют ввести новую строку поиска; при нажатии с пустой строкой поиска они повторяют ранее использованную строку поиска.
Команды ‘next-prompt’ и ‘previous-prompt’ перемещаются между командными строками оболочки, но требуют, чтобы оболочка отправляла escape-последовательность (\033]133;A\033\), чтобы сообщить tmux о расположении командных строк; если оболочка этого не делает, эти команды не будут работать. Флаг -o переходит к началу вывода команды, а не к командной строке оболочки. Чтобы найти начало вывода команды, оболочка должна отправлять escape-последовательность (\033]133;C\033\), чтобы сообщить tmux о том, где начинается вывод. Если оболочка не отправляет эти escape-последовательности, эти команды не будут работать.
Команды копирования могут принимать необязательный префикс буфера, который используется для создания имени буфера (по умолчанию — ‘buffer’, поэтому буферы называются ‘buffer0’, ‘buffer1’ и так далее). Команды передачи (pipe) принимают аргумент команды, который является командой, в которую передается выбранный текст. Варианты ‘copy-pipe’ также копируют выделенный текст. Варианты команд с флагом ‘-and-cancel’ выходят из режима копирования после завершения (для команд копирования) или при достижении курсором нижней части (для команд прокрутки). Варианты команд с флагом ‘-no-clear’ не очищают выделенный текст. Все команды копирования могут принимать флаги -C и -P. Флаг -C отключает установку буфера обмена терминала при копировании, а флаг -P отключает добавление буфера вставки с текстом.
Следующие и предыдущие клавиши слова пропускают пробелы и рассматривают последовательные последовательности либо разделителей слов, либо других букв как слова. Разделители слов можно настроить с помощью опции сеанса word-separators. Следующее слово перемещает курсор в начало следующего слова, следующее слово в конце перемещает курсор в конец следующего слова, а предыдущее слово перемещает курсор в начало предыдущего слова. Три клавиши для следующего и предыдущего пробела работают аналогично, но используют только пробел в качестве разделителя слов. Установка word-separators в пустую строку делает команды next/previous word эквивалентными командам next/previous space.
Команды перехода обеспечивают быстрое перемещение внутри строки. Например, ввод ‘f’, за которым следует ‘/’, переместит курсор к следующему символу ‘/’ в текущей строке. ‘;’ перейдет к следующему появлению.
В режиме копирования команды могут начинаться с необязательного префикса повторения. При использовании привязок клавиш vi префикс вводится с помощью цифровых клавиш; при использовании emacs префикс вводится с помощью клавиши Alt (meta) и цифры.
Синтаксис команды режима копирования:
copy-mode [-deHMqSu] [-s src-pane] [-t target-pane]
Войти в режим копирования.
-u входит в режим копирования и прокручивает одну страницу вверх, -d — одну страницу вниз. -H скрывает индикатор положения в правом верхнем углу. -q отменяет режим копирования и любые другие режимы.
-M начинает перетаскивание мышью (действительно, только если привязано к нажатию кнопки мыши, см. «ПОДДЕРЖКА МЫШИ»).
-S выполняет прокрутку при привязке к событию перетаскивания мышью; например, copy-mode -Se привязана к MouseDrag1ScrollbarSlider по умолчанию.
-s копирует из src-pane вместо target-pane.
-e указывает, что прокрутка до конца истории (до видимой области экрана) должна завершить режим копирования. Находясь в режиме копирования, нажатие клавиши, отличной от тех, которые используются для прокрутки, отключит это поведение. Это предназначено для быстрой прокрутки истории панели, например, с помощью:
bind PageUp copy-mode -eu
bind PageDown copy-mode -ed
Доступно несколько предопределенных схем расположения панелей, они называются макетами. Их можно выбрать с помощью команды select-layout или переключать с помощью next-layout (по умолчанию привязана к клавише «Пробел»); после выбора макета панели в нем можно перемещать и изменять размер обычным способом.
Поддерживаются следующие макеты:
even-horizontal
Панели равномерно распределены слева направо по окну.
even-vertical
Панели равномерно распределены сверху вниз.
main-horizontal
Большая (основная) панель отображается в верхней части окна, а остальные панели распределены слева направо в оставшемся пространстве внизу. Используйте опцию окна main-pane-height, чтобы указать высоту верхней панели.
main-horizontal-mirrored
То же, что и main-horizontal, но зеркально отражено, так что основная панель находится в нижней части окна.
main-vertical
Большая (основная) панель отображается слева в окне, а остальные панели распределены сверху вниз в оставшемся пространстве справа. Используйте опцию окна main-pane-width, чтобы указать ширину левой панели.
main-vertical-mirrored
То же, что и main-vertical, но зеркально отражено, так что основная панель находится справа в окне.
tiled Панели распределяются как можно более равномерно по окну как по строкам, так и по столбцам.
Кроме того, select-layout можно использовать для применения ранее использованного макета — команда list-windows отображает макет каждого окна в формате, пригодном для использования с select-layout. Например:
$ tmux list-windows
0 ksh [159x48]
layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
$ tmux select-layout 'bb62,159x48,0,0{79x48,0,0,79x48,80,0}'
tmux автоматически корректирует размер макета в соответствии с текущим размером окна. Обратите внимание, что макет нельзя применить к окну, содержащему больше панелей, чем в том, из которого макет был первоначально определен.
Команды, связанные с окнами и панелями, следующие:
break-pane [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]
(alias: breakp)
Отсоединяет панель src-pane от содержащего ее окна, чтобы сделать ее единственной панелью в окне dst-window.
При использовании опций -a или -b окно перемещается на следующую позицию после или перед (существующие окна перемещаются при необходимости). Если указана опция -d, новое окно не становится текущим. Опция -P выводит информацию о новом окне после его создания.
По умолчанию используется формат ‘#{session_name}:#{window_index}.#{pane_index}’, но можно указать другой формат с помощью опции -F.
capture-pane [-aepPqCJMN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]
(alias: capturep)
Сохраняет содержимое панели. Если указана опция -p, вывод направляется в стандартный вывод, в противном случае — в буфер, указанный с помощью опции -b, или в новый буфер, если он не указан. Если указана опция -a, используется альтернативный экран, и история недоступна. Если альтернативный экран не существует, возвращается ошибка, если не указана опция -q. Аналогично, если панель находится в режиме, опция -M использует экран для этого режима. Если указана опция -e, в вывод включаются управляющие последовательности для атрибутов текста и фона. Опция -C также экранирует непечатаемые символы в виде восьмеричных \xxx. Опция -T игнорирует конечные позиции, которые не содержат символов. Опция -N сохраняет конечные пробелы в конце каждой строки, а опция -J сохраняет конечные пробелы и объединяет любые перенесенные строки; опция -J подразумевает -T. Опция -P сохраняет только вывод, который панель получила и который представляет собой начало незавершенной управляющей последовательности.
Опции `-S` и `-E` указывают начальный и конечный номера строк, 0 — это первая строка видимой панели, а отрицательные числа — строки в истории. Символ `-` для `-S` означает начало истории, а для `-E` — конец видимой панели. По умолчанию сохраняется только видимое содержимое панели.
choose-client [-NryZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane]
[template]
Переводит панель в режим выбора клиента, позволяя клиенту выбирать из списка.
Каждый клиент отображается в отдельной строке. В левой части отображается сочетание клавиш, позволяющее сразу выбрать клиента, или можно перемещаться по списку и выбирать элемент или выполнять другие действия с помощью следующих клавиш. Опция -Z увеличивает панель. Опция -y отключает все запросы на подтверждение. Доступны следующие клавиши в режиме выбора клиента:
Клавиша Функция
Enter Выбрать выбранного клиента
Вверх Выбрать предыдущего клиента
Вниз Выбрать следующего клиента
C-s Поиск по имени
n Повторить последний поиск вперед
N Повторить последний поиск назад
t Переключить флаг для клиента
T Снять флаги со всех клиентов
C-t Установить флаги для всех клиентов
d Отсоединить выбранного клиента
D Отсоединить отмеченных клиентов
x Отсоединить выбранного клиента и отправить сигнал HUP
X Отсоединить отмеченных клиентов и отправить сигнал HUP
z Приостановить выбранного клиента
Z Приостановить отмеченных клиентов
f Ввести формат для фильтрации элементов
O Изменить поле сортировки
r Изменить порядок сортировки
v Переключить предварительный просмотр
q Выйти из режима
После выбора клиента «%%» заменяется именем клиента в шаблоне, и полученный результат выполняется как команда. Если шаблон не указан, используется «detach-client -t '%%'».
-O указывает начальное поле для сортировки: одно из «name», «size», «creation» (время) или «activity» (время). -r меняет порядок сортировки. -f указывает начальный фильтр: фильтр представляет собой формат — если он возвращает ноль, элемент в списке не отображается, в противном случае он отображается. Если фильтр приведет к пустому списку, он игнорируется. -F указывает формат для каждого элемента в списке, а -K — формат для каждой клавиши быстрого доступа; оба значения вычисляются один раз для каждой строки. -N запускает режим без предварительного просмотра или, если указано дважды, с большим предварительным просмотром. Эта команда работает только в том случае, если к клиенту подключено как минимум одно окно.
choose-tree [-GNrswyZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]
Переводит панель в режим дерева, где сеанс, окно или панель можно выбрать интерактивно из дерева. Каждый сеанс, окно или панель отображается в отдельной строке. Слева отображается клавиша быстрого доступа, позволяющая выбрать элемент немедленно, или можно перемещаться по дереву и выбирать элемент или выполнять с ним другие действия с помощью клавиш, указанных ниже. -s запускает свернутыми сеансами, а -w — окнами. -Z увеличивает панель. -y отключает все запросы подтверждения. Следующие клавиши можно использовать в режиме дерева:
Клавиша Функция
Enter Выбрать выбранный элемент
Вверх Выбрать предыдущий элемент
Вниз Выбрать следующий элемент
S-Вверх Поменять текущее окно местами с предыдущим
S-Вниз Поменять текущее окно местами со следующим
+ Развернуть выбранный элемент
- Свернуть выбранный элемент
M-+ Развернуть все элементы
M-- Свернуть все элементы
x Удалить выбранный элемент
X Удалить отмеченные элементы
< Прокрутить список предварительных просмотров влево
> Прокрутить список предварительных просмотров вправо
C-s Поиск по имени
m Установить отмеченную панель
M Очистить отмеченную панель
n Повторить последний поиск вперед
N Повторить последний поиск назад
t Переключить отметку элемента
T Отменить отметку всех элементов
C-t Отметить все элементы
: Выполнить команду для каждого отмеченного элемента
f Ввести формат для фильтрации элементов
H Перейти к начальной панели
O Изменить поле сортировки
r Изменить порядок сортировки
v Переключить предварительный просмотр
q Выйти из режима
После выбора сеанса, окна или панели первое вхождение «%%» и все вхождения «%1» заменяются целевым значением в шаблоне, и полученный результат выполняется как команда. Если шаблон не указан, используется «switch-client -t '%%'».
-O указывает начальное поле для сортировки: одно из «index», «name» или «time» (время активности). -r меняет порядок сортировки. -f указывает начальный фильтр: фильтр представляет собой формат — если он возвращает ноль, элемент в списке не отображается, в противном случае он отображается. Если фильтр приведет к пустому списку, он игнорируется. -F указывает формат для каждого элемента в дереве, а -K — формат для каждой клавиши быстрого доступа; оба значения вычисляются один раз для каждой строки. -N запускает режим без предварительного просмотра или, если указано дважды, с большим предварительным просмотром. -G включает все сеансы во всех группах сеансов в дереве, а не только первый. Эта команда работает только в том случае, если к клиенту подключено как минимум одно окно.
customize-mode [-NZ] [-F format] [-f filter] [-t target-pane] [template]
Переводит панель в режим настройки, где параметры и сочетания клавиш можно просматривать и изменять из списка. Значения параметров в списке отображаются для активной панели в текущем окне. -Z увеличивает масштаб панели. Следующие клавиши можно использовать в режиме настройки:
Клавиша Функция
Enter Устанавливает значение параметра для панели, окна, сессии или глобально
Up Выбирает предыдущий элемент
Down Выбирает следующий элемент
+ Разворачивает выбранный элемент
- Сворачивает выбранный элемент
M-+ Разворачивает все элементы
M-- Сворачивает все элементы
s Устанавливает значение параметра или атрибут клавиши
S Устанавливает глобальное значение параметра
w Устанавливает значение параметра для окна, если параметр относится к панели и окну
d Устанавливает параметр или клавишу на значение по умолчанию
D Устанавливает отмеченные параметры и отмеченные клавиши на значение по умолчанию
u Удаляет параметр (устанавливает на значение по умолчанию, если глобальный) или отменяет привязку клавиши
U Удаляет отмеченные параметры и отменяет привязку отмеченных клавиш
C-s Поиск по имени
n Повторяет последний поиск вперед
N Повторяет последний поиск назад
t Переключает, отмечен ли элемент
T Снимает отметку со всех элементов
C-t Отмечает все элементы
f Вводит формат для фильтрации элементов
v Переключает отображение информации о параметре
q Выход из режима
-f задает начальный фильтр: фильтр — это формат; если он возвращает ноль, элемент в списке не отображается, в противном случае он отображается. Если фильтр приведет к пустому списку, он игнорируется. -F задает формат для каждого элемента в дереве. -N запускает без информации о параметре. Эта команда работает только в том случае, если подключен хотя бы один клиент.
display-panes [-bN] [-d duration] [-t target-client] [template]
(alias: displayp)
Отображает видимый индикатор для каждой панели, отображаемой целевым клиентом. См. параметры сессии display-panes-colour и display-panes-active-colour. Индикатор закрывается при нажатии клавиши (если не указано -N) или после истечения указанного времени в миллисекундах. Если -d не указан, используется display-panes-time. Продолжительность, равная нулю, означает, что индикатор остается на экране до нажатия клавиши. Пока индикатор отображается на экране, панель можно выбрать с помощью клавиш от «0» до «9», что приведет к выполнению шаблона в качестве команды, при этом «%%» будет заменено на идентификатор панели. По умолчанию шаблон — «select-pane -t '%%'». С опцией -b другие команды не блокируются до закрытия индикатора.
find-window [-iCNrTZ] [-t target-pane] match-string
(alias: findw)
Выполняет поиск по шаблону glob(7) или, с помощью -r, по регулярному выражению match-string в именах окон, заголовках и видимом содержимом (но не в истории). Флаги управляют поведением поиска: -C выполняет поиск только в видимом содержимом окна, -N выполняет поиск только в имени окна, а -T выполняет поиск только в заголовке окна. -i делает поиск нечувствительным к регистру. По умолчанию -CNT. -Z увеличивает масштаб панели.
Эта команда работает только в том случае, если хотя бы один клиент подключен.
join-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]
(alias: joinp)
Подобно команде split-window, но вместо того, чтобы разделять dst-pane и создавать новую панель, она разделяет dst-pane и перемещает src-pane в освободившееся пространство. Это можно использовать для отмены break-pane. Опция -b приводит к тому, что src-pane присоединяется к левой или верхней стороне dst-pane.
Если -s не указана и присутствует отмеченная панель (см. select-pane -m), используется отмеченная панель вместо текущей.
kill-pane [-a] [-t target-pane]
(alias: killp)
Уничтожает указанную панель. Если после этого в содержащем окне не останется панелей, оно также будет уничтожено. Опция -a уничтожает все панели, кроме указанной с помощью -t.
kill-window [-a] [-t target-window]
(alias: killw)
Уничтожает текущее окно или окно, указанное в target-window, удаляя его из всех сессий, к которым оно привязано. Опция -a уничтожает все окна, кроме указанного с помощью -t.
last-pane [-deZ] [-t target-window]
(alias: lastp)
Выбирает последнюю (предыдущую) выбранную панель. -Z сохраняет масштабирование окна, если оно было масштабировано. -e включает или -d отключает ввод в панель.
last-window [-t target-session]
(alias: last)
Выбирает последнее (предыдущее) окно. Если target-session не указана, выбирается последнее окно текущей сессии.
link-window [-abdk] [-s src-window] [-t dst-window]
(alias: linkw)
Привязывает окно src-window к указанному dst-window. Если dst-window указано и такого окна не существует, src-window привязывается к этому месту. С опциями -a или -b окно перемещается на следующую позицию после или перед dst-window (существующие окна перемещаются, если это необходимо). Если указана опция -k и dst-window существует, оно уничтожается, в противном случае возникает ошибка. Если указана опция -d, вновь привязанное окно не выбирается.
list-panes [-as] [-F format] [-f filter] [-t target]
(alias: lsp)
Если указана опция -a, target игнорируется и выводятся все панели на сервере. Если указана опция -s, target — это сессия (или текущая сессия). Если ни одна из них не указана, target — это окно (или текущее окно). -F указывает формат каждой строки, а -f — фильтр. Выводятся только панели, для которых фильтр возвращает истинное значение. См. раздел «FORMATS».
list-windows [-a] [-F format] [-f filter] [-t target-session]
(alias: lsw)
Если указана опция -a, выводятся все окна на сервере. В противном случае выводятся окна в текущей сессии или в target-session. -F указывает формат каждой строки, а -f — фильтр. Выводятся только окна, для которых фильтр возвращает истинное значение. См. раздел «FORMATS».
move-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]
(alias: movep)
Выполняет то же самое, что и join-pane.
move-window [-abrdk] [-s src-window] [-t dst-window]
(alias: movew)
Эта команда аналогична link-window, за исключением того, что окно из src-window перемещается в dst-window.
С флагом -r все окна в сессии перенумеровываются в последовательном порядке, соблюдая
основной индекс.
new-window [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t
target-window] [shell-command [argument ...]]
(alias: neww)
Создает новое окно. С флагами -a или -b новое окно вставляется после или перед указанным
target-window, при этом другие окна сдвигаются вверх, если это необходимо; в противном случае
target-window становится новым местоположением окна.
Если указан флаг -d, новая сессия не становится текущим окном.
target-window представляет собой окно, которое нужно создать; если целевое окно уже существует,
возникает ошибка, если не используется флаг -k, в этом случае оно уничтожается. Если указан флаг -S
и окно с именем window-name уже существует, оно выбирается (если только не указан также флаг -d,
в этом случае команда ничего не делает).
shell-command — это команда, которую нужно выполнить. Если shell-command не указана,
используется значение опции default-command. Флаг -c указывает рабочий каталог, в котором
создается новое окно.
Когда выполнение shell-command завершается, окно закрывается. См. опцию remain-on-exit,
чтобы изменить это поведение.
Флаг -e имеет вид «ПЕРЕМЕННАЯ=значение» и задает переменную среды для вновь созданного
окна; его можно указать несколько раз.
Переменная среды TERM должна быть установлена в значение «screen» или «tmux» для всех программ,
работающих внутри tmux. Новые окна автоматически получают переменную «TERM=screen» в своей среде,
но следует следить за тем, чтобы она не сбрасывалась в файлах инициализации оболочки или с помощью
флага -e.
Флаг -P выводит информацию о новом окне после его создания. По умолчанию используется формат
«\#{session\_name}:\#{window\_index}», но можно указать другой формат с помощью -F.
next-layout [-t target-window]
(alias: nextl)
Перемещает окно к следующей раскладке и перестраивает панели для соответствия.
next-window [-a] [-t target-session]
(alias: next)
Переходит к следующему окну в сессии. Если используется флаг -a, переходит к следующему
окну с уведомлением.
pipe-pane [-IOo] [-t target-pane] [shell-command]
(alias: pipep)
Перенаправляет вывод программы в target-pane в shell-command или наоборот. К панели
можно подключить только одну команду за раз, любое существующее соединение закрывается
перед выполнением shell-command. Строка shell-command может содержать специальные символы,
поддерживаемые опцией status-left. Если shell-command не указана, текущее соединение
(если оно есть) закрывается.
Флаги -I и -O указывают, какие потоки вывода shell-command подключаются к панели:
с флагом -I подключается стандартный вывод (stdout), поэтому все, что shell-command выводит,
записывается в панель, как если бы это было введено с клавиатуры; с флагом -O подключается
стандартный ввод (stdin), поэтому любой вывод в панели перенаправляется в shell-command.
Оба флага можно использовать вместе, и если ни один из них не указан, используется флаг -O.
Опция -o открывает новый канал только в том случае, если предыдущий канал не существует, что позволяет переключать канал одним нажатием клавиши, например:
bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
previous-layout [-t target-window]
(alias: prevl)
Переместить к предыдущей раскладке в сессии.
previous-window [-a] [-t target-session]
(alias: prev)
Переместить к предыдущему окну в сессии. С опцией -a, переместить к предыдущему окну, содержащему уведомление.
rename-window [-t target-window] new-name
(alias: renamew)
Переименовать текущее окно или окно, указанное в target-window, в new-name.
resize-pane [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]
(alias: resizep)
Изменить размер панели, вверх, вниз, влево или вправо на величину adjustment с помощью -U, -D, -L или -R, или до абсолютного размера с помощью -x или -y. Значение adjustment указывается в строках или столбцах (по умолчанию 1; -x и -y могут быть указаны как число строк или столбцов или с добавлением '%' для указания процента от размера окна, например '-x 10%'). С опцией -Z, активная панель переключается между режимом масштабирования (занимает все окно) и режимом обычного размера (ее нормальное положение в макете).
-M начинает изменение размера с помощью мыши (действительно только в том случае, если назначено привязка клавиши мыши, см. «ПОДДЕРЖКА МЫШИ»).
-T обрезает все строки ниже текущей позиции курсора и перемещает строки из истории, чтобы заменить их.
resize-window [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]
(alias: resizew)
Изменить размер окна, вверх, вниз, влево или вправо на величину adjustment с помощью -U, -D, -L или -R, или до абсолютного размера с помощью -x или -y. Значение adjustment указывается в строках или ячейках (по умолчанию 1. -A устанавливает размер самой большой сессии, содержащей окно; -a размер самой маленькой. Эта команда автоматически устанавливает параметр window-size в значение manual в параметрах окна).
respawn-pane [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command [argument
...]]
(alias: respawnp)
Повторно активировать панель, в которой команда завершила работу (см. опцию remain-on-exit окна). Если shell-command не указана, выполняется команда, использованная при создании или последней повторной активации панели. Панель должна быть уже неактивной, если не указана опция -k, в этом случае любая существующая команда будет завершена. -c указывает новый рабочий каталог для панели. Опция -e имеет то же значение, что и для команды new-window.
respawn-window [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command
[argument ...]]
(alias: respawnw)
Повторно активировать окно, в котором команда завершила работу (см. опцию remain-on-exit окна). Если shell-command не указана, выполняется команда, использованная при создании или последней повторной активации окна. Окно должно быть уже неактивным, если не указана опция -k, в этом случае любая существующая команда будет завершена. -c указывает новый рабочий каталог для окна. Опция -e имеет то же значение, что и для команды new-window.
rotate-window [-DUZ] [-t target-window]
(alias: rotatew)
Поворачивает положение панелей в окне, либо вверх (по числовому значению) с помощью -U, либо вниз (по числовому значению). -Z сохраняет состояние масштабирования окна, если оно было масштабировано.
select-layout [-Enop] [-t target-pane] [layout-name]
(alias: selectl)
Выбирает определенную раскладку для окна. Если layout-name не указан, применяется последняя использованная предустановленная раскладка (если таковая имеется). -n и -p эквивалентны командам next-layout и previous-layout. -o применяет последнюю установленную раскладку, если это возможно (отменяет последнее изменение раскладки). -E равномерно распределяет текущую панель и любые панели, расположенные рядом с ней.
select-pane [-DdeLlMmRUZ] [-T title] [-t target-pane]
(alias: selectp)
Делает панель target-pane активной панелью в ее окне. Если используется одна из опций -D, -L, -R или -U, то используется панель, расположенная соответственно ниже, слева, справа или выше целевой панели. -Z сохраняет состояние масштабирования окна, если оно было масштабировано. -l эквивалентен использованию команды last-pane. -e включает или -d отключает ввод в панель. -T устанавливает заголовок панели.
-m и -M используются для установки и очистки помеченной панели. Существует только одна помеченная панель за раз, установка новой помеченной панели удаляет предыдущую. Помеченная панель является целевой панелью по умолчанию для -s для команд `join-pane`, `move-pane` и `swap-pane`, а также для `swap-window`.
select-window [-lnpT] [-t target-window]
(alias: selectw)
Выбирает окно target-window. -l, -n и -p эквивалентны командам last-window, next-window и previous-window. Если указана опция -T и выбранное окно уже является текущим окном, команда ведет себя как last-window.
split-window [-bdfhIvPZ] [-c start-directory] [-e environment] [-F format] [-l size] [-t target-pane] [shell-command [argument ...]]
(alias: splitw)
Создает новую панель путем разделения target-pane: -h выполняет горизонтальное разделение, а -v - вертикальное; если ни одна из них не указана, предполагается -v. Опция -l указывает размер новой панели в строках (для вертикального разделения) или в столбцах (для горизонтального разделения); размер может быть дополнен символом %, чтобы указать процент доступного пространства. Опция -b создает новую панель слева от или выше target-pane. Опция -f создает новую панель, занимающую всю высоту окна (с -h) или всю ширину окна (с -v), вместо разделения активной панели. -Z масштабирует окно, если оно не масштабировано, или сохраняет состояние масштабирования, если оно уже масштабировано.
Пустая команда оболочки ('') создаст панель, в которой не выполняется никакая команда. В такую панель можно отправлять вывод с помощью команды display-message. Флаг -I (если shell-command не указан или пуст) создаст пустую панель и перенаправит весь вывод из стандартного ввода в нее. Например:
$ make 2>&1|tmux splitw -dI &
Все остальные опции имеют то же значение, что и для команды new-window.
swap-pane [-dDUZ] [-s src-pane] [-t dst-pane]
(alias: swapp)
Меняет местами два окна. Если используется -U и не указано исходное окно с помощью -s, целевое окно меняется местами с предыдущим окном (в числовом порядке); -D меняет местами со следующим окном (в числовом порядке). -d указывает tmux не изменять активное окно, а -Z сохраняет состояние масштабирования окна, если оно было масштабировано.
Если -s опущен и присутствует помеченное окно (см. select-pane -m), используется помеченное окно вместо текущего.
swap-window [-d] [-s src-window] [-t dst-window]
(alias: swapw)
Аналогично link-window, за исключением того, что исходное и целевое окна меняются местами. Если окно src-window не существует, возникает ошибка. Если указан -d, новое окно не становится текущим.
Если -s опущен и присутствует помеченное окно (см. select-pane -m), используется окно, содержащее помеченное окно, вместо текущего.
unlink-window [-k] [-t target-window]
(alias: unlinkw)
Отключает target-window. Если не указан -k, окно может быть отключено только в том случае, если оно связано с несколькими сессиями. Окна не могут быть не связаны ни с одной сессией; если указан -k и окно связано только с одной сессией, оно отключается и уничтожается.
КЛЮЧЕВЫЕ СОЧЕТАНИЯ
tmux позволяет привязать команду к большинству клавиш, с префиксной клавишей или без нее. При указании клавиш большинство из них обозначаются самими собой (например, от ‘A’ до ‘Z’). Клавиши Ctrl можно указывать с помощью префикса ‘C-’ или ‘^’, клавиши Shift — с помощью ‘S-’, а клавиши Alt (Meta) — с помощью ‘M-’. Кроме того, принимаются следующие специальные имена клавиш: Up, Down, Left, Right, BSpace, BTab, DC (Delete), End, Enter, Escape, F1–F12, Home, IC (Insert), NPage/PageDown/PgDn, PPage/PageUp/PgUp, Space и Tab. Обратите внимание, что для привязки клавиш ‘"’ или ‘'’ необходимо использовать кавычки, например:
bind-key '"' split-window
bind-key "'" new-window
Команда, привязанная к клавише Any, будет выполняться для всех клавиш, для которых не задано более конкретное сочетание.
Команды, связанные с ключевыми сочетаниями, следующие:
bind-key [-nr] [-N note] [-T key-table] key [command [argument ...]]
(alias: bind)
Привязывает клавишу key к команде command. Клавиши привязываются в таблице клавиш. По умолчанию (без -T) клавиша привязывается в таблице префиксных клавиш. Эта таблица используется для клавиш, нажимаемых после префиксной клавиши (например, по умолчанию ‘c’ привязана к new-window в таблице префиксов, поэтому ‘C-b c’ создает новое окно). Корневая таблица используется для клавиш, нажимаемых без префиксной клавиши: привязка ‘c’ к new-window в корневой таблице (не рекомендуется) означает, что простое нажатие ‘c’ создаст новое окно. -n — это псевдоним для -T root. Клавиши также могут быть привязаны в пользовательских таблицах клавиш, а команда switch-client -T может использоваться для переключения между ними из ключевого сочетания. Флаг -r указывает, что эта клавиша может повторяться, см. параметры initial-repeat-time и repeat-time. Флаг -N добавляет примечание к клавише (отображается с помощью list-keys -N), которое можно очистить, передав пустую строку. Флаги -r и -N можно использовать без команды, чтобы изменить существующую привязку.
Для просмотра стандартных привязок и возможных команд используйте команду list-keys.
list-keys [-1aN] [-P prefix-string] [-T key-table] [key]
(alias: lsk)
Список привязок клавиш. Существует две формы: в стандартной форме клавиши отображаются как команды bind-key; с флагом -N отображаются только клавиши с прикрепленными заметками, и для каждой клавиши отображается только клавиша и заметка.
В стандартной форме по умолчанию отображаются все таблицы клавиш. Опция -T отображает только клавиши в key-table.
При использовании формы -N по умолчанию отображаются только клавиши в корневой и таблицах клавиш префиксов; -T также отображает только клавиши в key-table. -P указывает префикс для печати перед каждой клавишей, а -1 отображает только первую найденную клавишу. -a отображает команду для клавиш, у которых нет заметки, вместо того, чтобы пропускать их.
send-keys [-FHKlMRX] [-c target-client] [-N repeat-count] [-t target-pane] [key ...]
(alias: send)
Отправка клавиши или клавиш в окно или клиент. Каждый аргумент key является именем клавиши (например, 'C-a' или 'NPage'), которую нужно отправить; если строка не распознается как клавиша, она отправляется как последовательность символов. Если указан флаг -K, клавиши отправляются в target-client, поэтому они ищутся в таблице клавиш клиента, а не в target-pane. Все аргументы отправляются последовательно от первого до последнего. Если не указаны клавиши и команда привязана к клавише, используется эта клавиша.
Флаг `-l` отключает поиск имени клавиши и обрабатывает клавиши как литеральные символы UTF-8.
Флаг `-H` предполагает, что каждая клавиша является шестнадцатеричным числом для символа ASCII.
Флаг `-R` сбрасывает состояние терминала.
`-M` передает событие мыши (действительно только в том случае, если оно привязано к привязке клавиш мыши, см. раздел «ПОДДЕРЖКА МЫШИ»).
`-X` используется для отправки команды в режим копирования — см. раздел «ОКНА И ПАНЕЛИ». `-N` указывает количество повторений, а `-F` расширяет форматы в аргументах, если это необходимо.
send-prefix [-2] [-t target-pane]
Отправляет клавишу префикса или, при использовании -2, вторичную клавишу префикса в окно, как если бы она была нажата.
unbind-key [-anq] [-T key-table] key
(alias: unbind)
Отменяет привязку команды к клавише. -n и -T имеют то же значение, что и для bind-key. Если присутствует -a, удаляются все привязки клавиш. Опция -q предотвращает возврат ошибок.
ОПЦИИ
Внешний вид и поведение tmux можно изменить, изменив значение различных опций. Каждая опция принадлежит к одной или нескольким областям (сервер, сессия, окно и панель) и имеет тип (строка, число, клавиша, цвет, флаг, выборка или команда). Значения опций типа "флаг" могут быть следующими: 1, on, yes, 0, off или no; для возможных значений выборок см. соответствующую опцию; для опций типа "клавиша" см. раздел «ПРИВЯЗКИ КЛАВИШ»; для опций типа "цвет" см. раздел «СТИЛИ».
Сервер tmux имеет набор глобальных серверных опций, которые не применяются к какому-либо конкретному окну или сеансу или панели. Они изменяются с помощью команды set-option -s или отображаются с помощью команды show-options -s.
Кроме того, у каждой отдельной сессии может быть набор опций сессии, а также отдельный набор глобальных опций сессии. Сессии, для которых не настроена конкретная опция, наследуют значение из глобальных опций сессии. Опции сессии задаются или сбрасываются с помощью команды set-option и могут быть перечислены с помощью команды show-options. Доступные серверные и сессионные опции перечислены в справке по команде set-option.
Аналогично, с каждым окном связана группа опций окна, а с каждой панелью — группа опций панели. Опции панели наследуются от опций окна. Это означает, что любую опцию панели можно задать как опцию окна, чтобы применить эту опцию ко всем панелям в окне, не имеющим этой опции, например:
set -w window-style bg=red
set -pt:.0 window-style bg=blue
Существует также набор глобальных опций окна, из которых наследуются любые неустановленные опции окна или панели. Опции окна и панели изменяются с помощью команд set-option -w и set-option -p, а отображаются с помощью команд show-option -w и show-option -p.
Tmux также поддерживает пользовательские опции, которые имеют префикс «@». Пользовательские опции могут иметь любое имя, при условии, что они начинаются с «@», и могут быть установлены в любое строковое значение. Например:
$ tmux set -wq @foo "abc123"
$ tmux show -wv @foo
abc123
Опции управляются следующими командами:
set-option [-aFgopqsuUw] [-t target-pane] option [value]
(alias: set)
Задает опцию панели с помощью -p, опцию окна с помощью -w, опцию сервера с помощью -s, в противном случае — опцию сессии. Если опция не является пользовательской, -w или -s могут быть не нужны — tmux определит область действия из имени опции, предполагая -w для опций панели. Если указано -g, задается глобальная опция сессии или окна.
-F расширяет форматы в значении опции. Флаг `-u` сбрасывает опцию, поэтому сессия наследует опцию из глобальных опций (или, с помощью `-g`, восстанавливает глобальную опцию до значения по умолчанию). `-U` сбрасывает опцию (как и `-u`), но если опция является опцией панели, также сбрасывает опцию для всех панелей в окне. Значение зависит от опции и ее типа и может быть опущено для флагов и опций выбора, чтобы переключить ее значение (опции выбора переключаются между первыми двумя значениями).
Флаг -o предотвращает установку опции, которая уже установлена, а флаг -q подавляет ошибки о неизвестных или неоднозначных опциях.
С помощью -a, если опция ожидает строку или стиль, значение добавляется к существующему значению. Например:
set -g status-left "foo"
set -ag status-left "bar"
В результате получится «foobar». И:
set -g status-style "bg=red"
set -ag status-style "fg=blue"
В результате получится красный фон и синий цвет текста. Без -a результатом был бы цвет фона по умолчанию и синий цвет текста.
show-options [-AgHpqsvw] [-t target-pane] [option]
(alias: show)
Показывает опции панели (или одну опцию, если указана опция) с помощью -p, опции окна с помощью -w, опции сервера с помощью -s, в противном случае — опции сессии. Если опция не является пользовательской, -w или -s могут быть не нужны — tmux определит область действия из имени опции, предполагая -w для опций панели. Глобальные опции сессии или окна отображаются, если используется -g. -v отображает только значение опции, а не ее имя. Если установлен флаг -q, не будет возвращена ошибка, если опция не задана. -H включает хуки (по умолчанию опущены). -A включает опции, унаследованные от родительского набора опций, такие опции отмечены звездочкой.
Доступные опции сервера:
backspace key
Установите клавишу, которую tmux отправляет при нажатии Backspace.
buffer-limit number
Установите количество буферов; по мере добавления новых буферов в стек, старые буферы удаляются с конца, чтобы поддерживать максимальную длину.
command-alias[] name=value
Это массив пользовательских псевдонимов для команд. Если неизвестная команда соответствует `name`, она заменяется на `value`. Например, после:
set -s command-alias[100] zoom='resize-pane -Z'
Использование:
zoom -t:.1
Эквивалентно:
resize-pane -Z -t:.1
Обратите внимание, что псевдонимы расширяются при разборе команды, а не при ее выполнении, поэтому привязка псевдонима с помощью `bind-key` привяжет расширенную форму.
codepoint-widths[] string
Массив опций, позволяющий переопределять ширину кодовых точек Unicode. Обратите внимание, что новая ширина применяется ко всем клиентам. Каждая запись имеет форму `codepoint=width`, где `codepoint` может быть символом UTF-8 или идентификатором формы `U+number`, где `number` — шестнадцатеричное число.
copy-command shell-command
Укажите команду, в которую следует передавать вывод, если команда `copy-pipe` используется в режиме копирования без аргументов.
default-client-command command
Установите команду по умолчанию, которая будет выполняться при запуске tmux без указания команды. По умолчанию используется `new-session`.
default-terminal terminal
Установите терминал по умолчанию для новых окон, создаваемых в этой сессии. Это значение по умолчанию для переменной окружения `TERM`. Для правильной работы tmux, это значение должно быть установлено в `screen`, `tmux` или производное от них.
escape-time time
Установите время в миллисекундах, в течение которого tmux ожидает после ввода escape-последовательности, чтобы определить, является ли она частью функции или последовательности клавиш Meta.
editor shell-command
Установите команду, используемую tmux при запуске редактора.
exit-empty [on | off]
Если включено (по умолчанию), сервер завершит работу, когда не будет активных сессий.
exit-unattached [on | off]
Если включено, сервер завершит работу, когда не будет подключенных клиентов.
extended-keys [on | off | always]
Управляет тем, как сообщаются о модифицированных клавишах (клавиши, нажатые вместе с Control, Meta или Shift). Это эквивалентно ресурсу xterm(1) `modifyOtherKeys`.
Когда установлено значение `on`, программа внутри панели может запросить один из двух режимов: режим 1, который изменяет последовательность только для клавиш, для которых еще не существует известного представления, или режим 2, который изменяет последовательность для всех клавиш. Когда установлено значение `always`, режимы 1 и 2 все еще могут быть запрошены приложениями, но режим 1 будет принудительно использоваться вместо стандартного режима. Когда установлено значение `off`, эта функция отключается, и сообщаются только стандартные клавиши.
tmux всегда будет самостоятельно запрашивать расширенные клавиши, если терминал их поддерживает. См. также опцию `extkeys` для `terminal-features`, опцию `extended-keys-format` и переменную `pane_key_mode`.
`extended-keys-format` [csi-u | xterm]
Выбирает один из двух возможных форматов для передачи информации о модифицированных клавишах приложениям. Это эквивалентно ресурсу `formatOtherKeys` в `xterm(1)`. Например, C-S-a будет передаваться как `^[[27;6;65~`, когда установлено значение `xterm`, и как `^[[65;6u`, когда установлено значение `csi-u`.
`focus-events` [on | off]
При включении, запросы событий фокуса отправляются из терминала, если это поддерживается, и передаются приложениям, работающим в tmux. При изменении этой опции присоединенные клиенты должны быть отсоединены и повторно присоединены.
`history-file` path
Если не пустой, файл, в который tmux будет записывать историю командной строки при выходе и загружать ее при запуске.
`input-buffer-size` bytes
Максимальное количество байтов, разрешенных для чтения в управляющих и escape-последовательностях. Как только этот предел достигнут, последовательность будет отброшена.
`message-limit` number
Установите количество сообщений об ошибках или информации, которые будут сохранены в журнале сообщений для каждого клиента.
`prompt-history-limit` number
Установите количество элементов истории, которые будут сохранены в файле истории для каждого типа командной строки.
`set-clipboard` [on | external | off]
Попытка установить содержимое буфера обмена терминала с помощью escape-последовательности `xterm(1)`, если в описании `terminfo(5)` есть запись Ms (см. раздел «РАСШИРЕНИЯ TERMINFO»).
Если установлено значение `on`, tmux будет как принимать escape-последовательность для создания буфера, так и пытаться установить буфер обмена терминала. Если установлено значение `external`, tmux будет пытаться установить буфер обмена терминала, но игнорировать попытки приложений установить буферы tmux. Если установлено значение `off`, tmux не будет ни принимать escape-последовательность буфера обмена, ни пытаться установить буфер обмена.
Обратите внимание, что эта функция должна быть включена в `xterm(1)` путем установки ресурса:
`disallowedWindowOps: 20,21,SetXprop`
Или путем изменения этого свойства из интерактивного меню `xterm(1)`, когда это необходимо.
`terminal-features[]` string
Установите функции терминала для типов терминалов, считываемых из `terminfo(5)`. В tmux есть набор именованных функций терминала. Каждая из них будет применять соответствующие изменения к используемой записи `terminfo(5)`.
tmux может обнаруживать функции для нескольких распространенных терминалов; эту опцию можно использовать для простого уведомления tmux о функциях, поддерживаемых терминалами, которые он не может обнаружить. Опция `terminal-overrides` позволяет устанавливать отдельные возможности `terminfo(5)` вместо этого; `terminal-features` предназначена для классов функциональности, поддерживаемых стандартным способом, но не сообщаемых `terminfo(5)`. Необходимо соблюдать осторожность при настройке этой опции, чтобы использовать только те функции, которые терминал фактически поддерживает.
Это опция массива, где каждая запись представляет собой строку, разделенную двоеточием, состоящую из шаблона типа терминала (совпадение выполняется с помощью шаблонов glob(7)) и списка функций терминала. Доступные функции:
256: Поддерживает 256 цветов с использованием SGR-последовательностей.
clipboard: Позволяет устанавливать системный буфер обмена.
ccolour: Позволяет устанавливать цвет курсора.
cstyle: Позволяет устанавливать стиль курсора.
extkeys: Поддерживает расширенные клавиши.
focus: Поддерживает уведомления об изменении фокуса.
hyperlinks: Поддерживает гиперссылки OSC 8.
ignorefkeys: Игнорирует функциональные клавиши из terminfo(5) и использует только внутренний набор tmux.
margins: Поддерживает поля DECSLRM.
mouse: Поддерживает последовательности мыши xterm(1).
osc7: Поддерживает расширение рабочего каталога OSC 7.
overline: Поддерживает атрибут надчеркивания SGR.
rectfill: Поддерживает последовательность заполнения прямоугольника DECFRA.
RGB: Поддерживает цвет RGB с использованием последовательностей SGR.
sixel: Поддерживает графику SIXEL.
strikethrough: Поддерживает атрибут зачеркивания SGR.
sync: Поддерживает синхронизированные обновления.
title: Поддерживает установку заголовка xterm(1).
usstyle: Позволяет устанавливать стиль и цвет подчеркивания.
terminal-overrides[] string: Позволяет переопределять описания терминалов, считываемые с помощью terminfo(5). Каждая запись представляет собой строку, разделенную двоеточием, состоящую из шаблона типа терминала (совпадение выполняется с помощью шаблонов glob(7)) и набора записей в формате имя=значение.
Например, чтобы установить значение записи `clear` в terminfo(5) равным `\e[H\e[2J` для всех типов терминалов, соответствующих шаблону `rxvt*`:
rxvt*:clear=\e[H\e[2J
Значение записи терминала передается в функцию strunvis(3) перед интерпретацией.
user-keys[] key: Устанавливает список пользовательских последовательностей клавиш. Каждый элемент связан с клавишей с именем `User0`, `User1` и так далее.
Например:
set -s user-keys[0] "\e[5;30012~"
bind User0 resize-pane -L 3
variation-selector-always-wide [on | off]: Всегда рассматривать символ Unicode «variation selector 16» как обозначающий широкий символ. Это функция некоторых терминалов в рамках их поддержки Unicode 14.
Доступные опции сеанса:
activity-action [any | none | current | other]: Определяет действие при активности окна, когда включена опция `monitor-activity`. `any` означает, что активность в любом окне, связанном с сеансом, вызывает сигнал или сообщение (в зависимости от `visual-activity`) в текущем окне этого сеанса, `none` означает, что вся активность игнорируется (что эквивалентно отключенной опции `monitor-activity`), `current` означает, что активность в окнах, отличных от текущего, игнорируется, а `other` означает, что активность в текущем окне игнорируется, но не в других окнах.
assume-paste-time milliseconds: Если клавиши вводятся быстрее, чем одна в миллисекунду, предполагается, что они были вставлены, а не введены, и привязки клавиш tmux не обрабатываются. По умолчанию — одна миллисекунда, а ноль отключает эту функцию.
base-index index: Устанавливает базовый индекс, с которого начинается поиск неиспользуемого индекса при создании нового окна. По умолчанию — ноль.
bell-action [any | none | current | other]
Устанавливает действие для звукового сигнала в окне, когда включена опция monitor-bell. Значения аналогичны значениям для activity-action.
default-command shell-command
Устанавливает команду, используемую для новых окон (если она не указана при создании окна), на shell-command, которая может быть любой [sh]({filename}../../sh)(1) командой. По умолчанию используется пустая строка, которая предписывает tmux создать оболочку входа, используя значение опции default-shell.
default-shell path
Указывает оболочку по умолчанию. Она используется в качестве оболочки входа для новых окон, когда опция default-command установлена в пустую строку, и должна быть полным путем к исполняемому файлу. При запуске tmux пытается установить значение по умолчанию из первой подходящей переменной окружения SHELL, оболочки, возвращаемой getpwuid(3), или /bin/sh. Эта опция должна быть настроена, когда tmux используется в качестве оболочки входа.
default-size XxY
Устанавливает размер по умолчанию для новых окон, когда опция window-size установлена в manual или когда сессия создается с помощью new-session -d. Значение — это ширина и высота, разделенные символом ‘x’. По умолчанию 80x24.
destroy-unattached [off | on | keep-last | keep-group]
Если установлено значение on, сессия уничтожается после того, как последний клиент отсоединился. Если установлено значение off (по умолчанию), сессия остается неактивной. Если установлено значение keep-last, сессия уничтожается только в том случае, если она находится в группе и в этой группе есть другие сессии. Если установлено значение keep-group, сессия уничтожается, если она находится в группе и является единственной сессией в этой группе.
detach-on-destroy [off | on | no-detached | previous | next]
Если установлено значение on (по умолчанию), клиент отсоединяется при уничтожении сессии, к которой он подключен. Если установлено значение off, клиент переключается на последнюю активную из оставшихся сессий. Если установлено значение no-detached, клиент отсоединяется только в том случае, если нет неактивных сессий; если неактивные сессии существуют, клиент переключается на последнюю активную. Если установлено значение previous или next, клиент переключается на предыдущую или следующую сессию в алфавитном порядке.
display-panes-active-colour colour
Устанавливает цвет, используемый командой display-panes для отображения индикатора активной панели.
display-panes-colour colour
Устанавливает цвет, используемый командой display-panes для отображения индикаторов неактивных панелей.
display-panes-time time
Устанавливает время в миллисекундах, в течение которого отображаются индикаторы, отображаемые командой display-panes.
display-time time
Устанавливает время в миллисекундах, в течение которого отображаются сообщения в строке состояния и другие экранные индикаторы. Если установлено значение 0, сообщения и индикаторы отображаются до нажатия клавиши.
history-limit lines
Устанавливает максимальное количество строк, хранящихся в истории окна. Это относится только к новым окнам — существующие истории окон не изменяются и сохраняют лимит на момент их создания.
initial-repeat-time time
Устанавливает время в миллисекундах для первого повтора, когда клавиша привязана с флагом -r. Это позволяет вводить несколько команд, не нажимая повторно префиксную клавишу. См. также опцию repeat-time. Если initial-repeat-time равно нулю, для первого нажатия клавиши используется repeat-time.
key-table key-table
Устанавливает таблицу клавиш по умолчанию в `key-table` вместо `root`.
lock-after-time number
Блокирует сеанс (аналогично команде `lock-session`) после `number` секунд бездействия.
По умолчанию блокировка не выполняется (установите значение 0).
lock-command shell-command
Команда, которая выполняется при блокировке каждого клиента. По умолчанию выполняется команда `lock(1)` с опцией `-np`.
menu-style style
Устанавливает стиль меню. См. раздел «СТИЛИ» для получения информации о том, как указать стиль.
menu-selected-style style
Устанавливает стиль выбранного элемента меню. См. раздел «СТИЛИ» для получения информации о том, как указать стиль.
menu-border-style style
Устанавливает стиль границы меню. См. раздел «СТИЛИ» для получения информации о том, как указать стиль.
menu-border-lines type
Устанавливает тип символов, используемых для рисования границ меню. См. `popup-border-lines` для получения возможных значений для `border-lines`.
message-command-style style
Устанавливает стиль командной строки сообщения в строке состояния. Это используется для командной строки с клавишами `vi(1)`, когда находится в командном режиме. Инструкции о том, как указать стиль, см. в разделе «СТИЛИ».
message-line [0 | 1 | 2 | 3 | 4]
Устанавливает строку, на которой отображаются сообщения в строке состояния и командная строка.
message-style style
Устанавливает стиль сообщения в строке состояния. Это используется для сообщений и для командной строки. Инструкции о том, как указать стиль, см. в разделе «СТИЛИ».
mouse [on | off]
Если установлено значение `on`, tmux перехватывает управление мышью и позволяет привязывать события мыши к клавишам. См. раздел «ПОДДЕРЖКА МЫШИ» для получения подробной информации.
prefix key
Устанавливает клавишу, которая используется в качестве префиксной клавиши. В дополнение к стандартным клавишам, описанным в разделе «ПРИВЯЗКА КЛАВИШ», для `prefix` можно установить специальное значение `None`, чтобы не использовать префикс.
prefix2 key
Устанавливает вторичную клавишу, которая используется в качестве префиксной клавиши. Как и для `prefix`, для `prefix2` можно установить значение `None`.
prefix-timeout time
Устанавливает время в миллисекундах, в течение которого tmux ожидает после ввода префиксной клавиши, прежде чем отменить ее. Можно установить значение 0, чтобы отключить тайм-аут.
prompt-cursor-colour colour
Устанавливает цвет курсора в командной строке.
prompt-cursor-style style
Устанавливает стиль курсора в командной строке. См. варианты `cursor-style` для доступных стилей.
renumber-windows [on | off]
Если установлено значение `on`, при закрытии окна в сеансе остальные окна в сеансе автоматически перенумеровываются в числовом порядке. Это учитывает опцию `base-index`, если она была установлена. Если установлено значение `off`, окна не перенумеровываются.
repeat-time time
Позволяет вводить несколько команд без повторного нажатия префиксной клавиши в течение указанного времени в миллисекундах (по умолчанию 500). Можно указать, будет ли клавиша повторяться, при ее привязке с помощью флага `-r` в команде `bind-key`. Повтор включен для клавиш, привязанных к команде `resize-pane` по умолчанию. См. также опцию `initial-repeat-time`.
`set-titles [on | off]`
Попытка установить заголовок клиентского терминала, используя записи tsl и fsl в terminfo(5), если они существуют. tmux автоматически устанавливает их в последовательность \e]0;...\007, если терминал выглядит как xterm(1). Эта опция по умолчанию отключена.
`set-titles-string string`
Строка, используемая для установки заголовка клиентского терминала, если set-titles включена. Форматы расширяются, см. раздел «ФОРМАТЫ».
`silence-action [any | none | current | other]`
Действие при тишине окна, когда monitor-silence включена. Значения те же, что и для activity-action.
`status [off | on | 2 | 3 | 4 | 5]`
Показать или скрыть строку состояния или указать ее размер. Использование on дает строку состояния высотой в одну строку; 2, 3, 4 или 5 — больше строк.
`status-format[] format`
Укажите формат, который будет использоваться для каждой строки строки состояния. По умолчанию верхняя строка состояния строится из различных отдельных опций состояния, указанных ниже.
`status-interval interval`
Обновлять строку состояния каждые interval секунд. По умолчанию обновления происходят каждые 15 секунд. Значение, равное нулю, отключает перерисовку через интервал.
`status-justify [left | centre | right | absolute-centre]`
Установите положение списка окон в строке состояния: слева, по центру или справа. centre помещает список окон в относительный центр доступного свободного пространства; absolute-centre использует центр всего горизонтального пространства.
`status-keys [vi | emacs]`
Используйте привязки клавиш в стиле vi или emacs в строке состояния, например, в строке команд. По умолчанию используется emacs, если переменные среды VISUAL или EDITOR установлены и содержат строку vi.
`status-left string`
Отображаемая строка (по умолчанию имя сеанса) слева от строки состояния. Строка будет передана функции strftime(3). Также см. разделы «ФОРМАТЫ» и «СТИЛИ».
Для получения подробной информации о том, как можно задавать имена и заголовки, см. раздел «ИМЕНА И ЗАГОЛОВКИ».
Примеры:
`#(sysctl vm.loadavg)`
`#[fg=yellow,bold]#(apm -l)%%#[default] [#S]`
По умолчанию: [\#S].
`status-left-length length`
Установите максимальную длину левой части строки состояния. По умолчанию 10.
`status-left-style style`
Установите стиль левой части строки состояния. О том, как указать стиль, см. в разделе «СТИЛИ».
`status-position [top | bottom]`
Установите положение строки состояния.
`status-right string`
Отображаемая строка справа от строки состояния. По умолчанию отображается текущий заголовок панели в двойных кавычках, дата и время. Как и в случае с status-left, строка будет передана функции strftime(3), а парные символы будут заменены.
`status-right-length length`
Установите максимальную длину правой части строки состояния. По умолчанию 40.
`status-right-style style`
Установите стиль правой части строки состояния. О том, как указать стиль, см. в разделе «СТИЛИ».
`status-style style`
Установите стиль строки состояния. О том, как указать стиль, см. в разделе «СТИЛИ».
update-environment[] variable
Задает список переменных окружения, которые будут скопированы в окружение сессии при создании новой сессии или подключении к существующей. Любые переменные, которых нет в исходном окружении, будут удалены из окружения сессии (как если бы была передана опция -r команде set-environment).
visual-activity [on | off | both]
Если установлено значение on, отображает сообщение вместо отправки звукового сигнала при возникновении активности в окне, для которого включена опция window monitor-activity. Если установлено значение both, воспроизводится как звуковой сигнал, так и сообщение.
visual-bell [on | off | both]
Если установлено значение on, в окне, для которого включена опция window monitor-bell, вместо передачи звукового сигнала в терминал (который обычно издает звук), отображается сообщение. Если установлено значение both, воспроизводится как звуковой сигнал, так и сообщение. Также см. опцию bell-action.
visual-silence [on | off | both]
Если включена опция monitor-silence, после истечения интервала времени для данного окна отображает сообщение вместо отправки звукового сигнала. Если установлено значение both, воспроизводится как звуковой сигнал, так и сообщение.
word-separators string
Задает, какие символы сессия считает разделителями слов, для использования в командах перехода к следующему и предыдущему слову в режиме копирования.
Доступные опции окна:
aggressive-resize [on | off]
Агрессивно изменяет размер выбранного окна. Это означает, что tmux изменит размер окна до размера наименьшей или наибольшей сессии (см. опцию window-size), для которой оно является текущим окном, а не до размера сессии, к которой оно подключено. Размер окна может измениться при изменении текущего окна в другой сессии; эта опция подходит для полноэкранных программ, поддерживающих SIGWINCH, и не подходит для интерактивных программ, таких как оболочки.
automatic-rename [on | off]
Управляет автоматическим переименованием окна. Когда эта настройка включена, tmux автоматически переименовывает окно, используя формат, указанный в automatic-rename-format. Этот флаг автоматически отключается для отдельного окна, когда имя указывается при создании с помощью new-window или new-session, или позже с помощью rename-window, или с помощью терминальной escape-последовательности. Его можно отключить глобально с помощью:
set-option -wg automatic-rename off
automatic-rename-format format
Формат (см. «FORMATS»), используемый при включенной опции automatic-rename.
clock-mode-colour colour
Задает цвет часов.
clock-mode-style [12 | 24 | 12-with-seconds | 24-with-seconds]
Задает формат отображения часов.
fill-character character
Задает символ, используемый для заполнения неиспользуемых областей терминала окном.
main-pane-height height
main-pane-width width
Задает высоту или ширину основной панели в макетах main-horizontal, main-horizontal-mirrored, main-vertical или main-vertical-mirrored. Если добавить суффикс «%», это будет процент от размера окна.
copy-mode-match-style style
Задает стиль поиска совпадений в режиме копирования. Подробности о том, как указать стиль, см. в разделе «STYLES».
copy-mode-mark-style style
Задает стиль строки, содержащей маркер, в режиме копирования. Как указывать стиль, см. в разделе «СТИЛИ».
copy-mode-current-match-style style
Задает стиль текущего найденного совпадения в режиме копирования. Как указывать стиль, см. в разделе «СТИЛИ».
copy-mode-position-format format
Формат индикатора позиции в режиме копирования.
mode-keys [vi | emacs]
Использует сочетания клавиш в стиле vi или emacs в режиме копирования. По умолчанию используется emacs, если переменные среды VISUAL или EDITOR не содержат ‘vi’.
copy-mode-position-style style
Задает стиль индикатора позиции в режиме копирования. Как указывать стиль, см. в разделе «СТИЛИ».
copy-mode-selection-style style
Задает стиль выделения в режиме копирования. Как указывать стиль, см. в разделе «СТИЛИ».
mode-style style
Задает стиль оконных режимов. Как указывать стиль, см. в разделе «СТИЛИ».
monitor-activity [on | off]
Отслеживает активность в окне. Окна с активностью выделяются в строке состояния.
monitor-bell [on | off]
Отслеживает сигнал в окне. Окна с сигналом выделяются в строке состояния.
monitor-silence [interval]
Отслеживает отсутствие активности (тишину) в окне в течение указанного количества секунд. Окна, в которых не было активности в течение указанного времени, выделяются в строке состояния. Значение 0 отключает мониторинг.
other-pane-height height
Задает высоту других панелей (не основной панели) в макетах main-horizontal и main-horizontal-mirrored. Если этот параметр установлен в 0 (по умолчанию), он не будет иметь никакого эффекта. Если установлены параметры main-pane-height и other-pane-height, основная панель будет увеличиваться в высоту, чтобы другие панели имели указанную высоту, но при этом не будет уменьшаться. Если к значению добавляется суффикс ‘%’, это значение будет выражено в процентах от размера окна.
other-pane-width width
Аналогично other-pane-height, но задает ширину других панелей в макетах main-vertical и main-vertical-mirrored.
pane-active-border-style style
Задает стиль границы для активной панели. Как указывать стиль, см. в разделе «СТИЛИ». Атрибуты игнорируются.
pane-base-index index
Аналогично base-index, но задает начальный индекс для номеров панелей.
pane-border-format format
Задает текст, отображаемый в строках состояния границы панели.
pane-border-indicators [off | colour | arrows | both]
Отображает активную панель, выделяя только половину границы в окнах, содержащих ровно две панели, отображая маркеры стрелок, отображая и то, и другое, или не отображая ничего.
pane-border-lines type
Задает тип символов, используемых для рисования границ панелей. type может быть одним из следующих:
single одинарные линии, использующие символы ACS или UTF-8
double двойные линии, использующие символы UTF-8
heavy толстые линии, использующие символы UTF-8
simple простые символы ASCII
number номер панели
spaces символы пробела
«double» и «heavy» будут использовать стандартные символы для рисования линий ACS, если UTF-8 не поддерживается.
pane-border-status [off | top | bottom]
Отключает или задает положение линий состояния границы панели.
pane-border-style style
Задает стиль границы панели для панелей, отличных от активной. Подробности о том, как указать стиль, см. в разделе «СТИЛИ». Атрибуты игнорируются.
popup-style style
Задает стиль всплывающего окна. Подробности о том, как указать стиль, см. в разделе «СТИЛИ». Атрибуты игнорируются.
popup-border-style style
Задает стиль границы всплывающего окна. Подробности о том, как указать стиль, см. в разделе «СТИЛИ». Атрибуты игнорируются.
popup-border-lines type
Задает тип символов, используемых для рисования границ всплывающего окна. type может быть одним из следующих:
single одинарные линии с использованием символов ACS или UTF-8 (по умолчанию)
rounded
вариация single с закругленными углами с использованием символов UTF-8
double двойные линии с использованием символов UTF-8
heavy толстые линии
simple простые символы ASCII
padded простые символы ASCII, заполненные пробелами
none нет границы
«double» и «heavy» будут использовать стандартные символы ACS для рисования линий, если UTF-8 не поддерживается.
pane-scrollbars [off | modal | on]
При включении отображается полоса прокрутки на основе символов слева или справа от каждой панели. Заполненный раздел полосы прокрутки, известный как «ползунок», представляет положение и размер видимой части содержимого панели.
Если установлено значение on, полоса прокрутки отображается постоянно. Если установлено значение modal, полоса прокрутки отображается только тогда, когда панель находится в режиме копирования или режиме просмотра. Когда полоса прокрутки видна, панель сужается на ширину полосы прокрутки, и текст в панели переформатируется. Если установлено значение modal, панель сужается только тогда, когда полоса прокрутки видна.
См. также pane-scrollbars-style.
pane-scrollbars-style style
Задает стиль полосы прокрутки. Подробности о том, как указать стиль, см. в разделе «СТИЛИ». Цвет переднего плана используется для ползунка, цвет фона — для остальной части полосы прокрутки. Атрибут width задает ширину полосы прокрутки, а атрибут pad — отступ между полосой прокрутки и панелью. Другие атрибуты игнорируются.
pane-scrollbars-position [left | right]
Определяет, с какой стороны панели отображать полосы прокрутки.
pane-status-current-style style
Задает стиль строки состояния для текущей активной панели. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
pane-status-style style
Задает стиль строки состояния для отдельной панели. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
session-status-current-style style
Задает стиль строки состояния для текущей активной сессии. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
session-status-style style
Задает стиль строки состояния для отдельной сессии. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
tiled-layout-max-columns number
Задает максимальное количество столбцов в черепичном макете. Значение 0 (по умолчанию) означает отсутствие ограничений. При установке ограничения панели располагаются таким образом, чтобы не превышать это количество столбцов, при этом дополнительные панели располагаются в дополнительных строках.
window-status-activity-style стиль
Задает стиль строки состояния для окон с активным уведомлением. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
window-status-bell-style стиль
Задает стиль строки состояния для окон с звуковым уведомлением. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
window-status-current-format строка
Аналогично window-status-format, но используется формат, когда окно является текущим окном.
window-status-current-style стиль
Задает стиль строки состояния для текущего активного окна. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
window-status-format строка
Задает формат, в котором окно отображается в списке окон строки состояния. См. разделы «ФОРМАТЫ» и «СТИЛИ».
window-status-last-style стиль
Задает стиль строки состояния для последнего активного окна. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
window-status-separator строка
Задает разделитель, который рисуется между окнами в строке состояния. По умолчанию используется один символ пробела.
window-status-style стиль
Задает стиль строки состояния для отдельного окна. Подробности о том, как указать стиль, см. в разделе «СТИЛИ».
window-size largest | smallest | manual | latest
Настраивает, как tmux определяет размер окна. Если установлено значение largest, используется размер самого большого подключенного сеанса; если smallest — размер самого маленького. Если manual, размер нового окна устанавливается из опции default-size, и окна автоматически изменяются в размере. При latest tmux использует размер клиента, в котором была последняя активность.
См. также команду resize-window и опцию aggressive-resize.
wrap-search [on | off]
Если эта опция установлена, поиск будет осуществляться с переходом к началу содержимого панели. По умолчанию — on.
Доступные опции панели:
allow-passthrough [on | off | all]
Разрешает программам в панели обходить tmux, используя последовательность терминала (\ePtmux;...\e\\). Если установлено значение on, последовательности обхода разрешены только в том случае, если панель видна. Если установлено значение all, они разрешены, даже если панель не видна.
allow-rename [on | off]
Разрешает программам в панели изменять имя окна, используя последовательность терминала (\ek...\e\\).
allow-set-title [on | off]
Разрешает программам в панели изменять заголовок, используя последовательности терминала (\e]2;...\e\\ или \e]0;...\e\\).
alternate-screen [on | off]
Эта опция определяет, могут ли программы, работающие внутри панели, использовать функцию альтернативного экрана терминала, которая позволяет использовать возможности smcup и rmcup из terminfo(5). Функция альтернативного экрана сохраняет содержимое окна при запуске интерактивного приложения и восстанавливает его при выходе, так что любой вывод, видимый до запуска приложения, снова отображается без изменений после его выхода.
cursor-colour цвет
Задает цвет курсора.
cursor-style стиль
Задает стиль курсора. Доступные стили: default, blinking-block, block, blinking-underline, underline, blinking-bar, bar.
pane-colours[] colour
Цветовая палитра по умолчанию. Каждый элемент массива определяет цвет, который tmux использует, когда запрашивается цвет с данным индексом. Индекс может быть от нуля до 255.
remain-on-exit [on | off | failed]
Панель с установленным этим флагом не уничтожается, когда программа, работающая в ней, завершается. Если установлено значение failed, то только если код выхода программы не равен нулю. Панель может быть реактивирована с помощью команды respawn-pane.
remain-on-exit-format string
Задает текст, отображаемый в нижней части окон, для которых включена опция remain-on-exit.
scroll-on-clear [on | off]
Когда весь экран очищается и эта опция включена, содержимое экрана прокручивается в историю перед очисткой.
synchronize-panes [on | off]
Дублирует ввод во все остальные панели в том же окне, где эта опция также включена (только для панелей, которые не находятся в каком-либо режиме).
window-active-style style
Задает стиль панели, когда она является активной панелью. Подробности о том, как указывать стиль, см. в разделе «STYLES».
window-style style
Задает стиль панели. Подробности о том, как указывать стиль, см. в разделе «STYLES».
ХУКИ
tmux позволяет выполнять команды при различных триггерах, называемых хуками. Большинство команд tmux имеют хук after, а также есть несколько хуков, не связанных с командами.
Хуки хранятся в виде опций массива, элементы массива выполняются по порядку при срабатывании хука. Как и опции, хуки могут быть глобальными или принадлежать сессии, окну или панели. Хуки можно настраивать с помощью команд set-hook или set-option и отображать с помощью show-hooks или show-options -H. Следующие две команды эквивалентны:
set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red'
set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red'
Установка хука без указания индекса массива очищает хук и устанавливает первый элемент массива.
Хук after команды выполняется после ее завершения, за исключением случаев, когда команда выполняется как часть хука. Они называются с префиксом after-. Например, следующая команда добавляет хук для выбора макета even-vertical после каждого split-window:
set-hook -g after-split-window "selectl even-vertical"
Если команда завершается с ошибкой, будет выполнен хук command-error. Например, это можно использовать для записи в файл журнала:
set-hook -g command-error "run-shell \"echo 'команда tmux завершилась с ошибкой' >>/tmp/log\""
Все уведомления, перечисленные в разделе «CONTROL MODE», являются хуками (без аргументов), за исключением %exit. Доступны следующие дополнительные хуки:
alert-activity Run when a window has activity. See monitor-activity.
alert-bell Run when a window has received a bell. See monitor-bell.
alert-silence Run when a window has been silent. See monitor-silence.
client-active Run when a client becomes the latest active client of its session.
client-attached — Запускается при подключении клиента.
client-detached — Запускается при отключении клиента.
client-focus-in — Запускается, когда фокус входит в клиент.
client-focus-out — Запускается, когда фокус покидает клиент.
client-resized — Запускается, когда размер клиента изменяется.
client-session-changed — Запускается, когда изменяется сессия, к которой подключен клиент.
client-light-theme — Запускается, когда клиент переключается на светлую тему.
client-dark-theme — Запускается, когда клиент переключается на темную тему.
command-error — Запускается при сбое команды.
pane-died — Запускается, когда программа в панели завершает работу, но параметр `remain-on-exit` включен, поэтому панель не закрывается.
pane-exited — Запускается, когда программа в панели завершает работу.
pane-focus-in — Запускается, когда фокус входит в панель, если включен параметр `focus-events`.
pane-focus-out — Запускается, когда фокус покидает панель, если включен параметр `focus-events`.
pane-set-clipboard — Запускается, когда буфер обмена терминала устанавливается с помощью escape-последовательности xterm(1).
session-created — Запускается при создании новой сессии.
session-closed — Запускается при закрытии сессии.
session-renamed — Запускается, когда сессия переименована.
window-layout-changed — Запускается при изменении макета окна.
window-linked — Запускается, когда окно связано с сессией.
window-renamed — Запускается, когда окно переименовано.
window-resized — Запускается, когда размер окна изменяется. Это может произойти после запуска хука `client-resized`.
window-unlinked — Запускается, когда окно отсоединяется от сессии.
Хуки управляются с помощью этих команд:
set-hook [-agpRuw] [-t target-pane] hook-name [command]
Без -R, устанавливает (или с -u удаляет) хук hook-name на command. Флаги те же, что и для set-option.
С -R, немедленно запускает хук hook-name.
show-hooks [-gpw] [-t target-pane] [hook]
Показывает хуки. Флаги те же, что и для show-options.
ПОДДЕРЖКА МЫШИ
Если включен параметр mouse (по умолчанию выключен), tmux позволяет назначать мышиные события на клавиши.
Имя каждой клавиши состоит из мышиного события (например, MouseUp1) и суффикса местоположения, одного из следующих:
Pane — содержимое панели
Border — граница панели
Status — строка состояния, список окон
StatusLeft — левая часть строки состояния
StatusRight — правая часть строки состояния
StatusDefault — любая другая часть строки состояния
ScrollbarSlider — ползунок полосы прокрутки
ScrollbarUp — область над ползунком полосы прокрутки
ScrollbarDown — область под ползунком полосы прокрутки
Доступны следующие мышиные события:
WheelUp — WheelDown
MouseDown1 — MouseUp1 — MouseDrag1 — MouseDragEnd1
MouseDown2 — MouseUp2 — MouseDrag2 — MouseDragEnd2
MouseDown3 — MouseUp3 — MouseDrag3 — MouseDragEnd3
SecondClick1 — SecondClick2 — SecondClick3
DoubleClick1 — DoubleClick2 — DoubleClick3
TripleClick1 — TripleClick2 — TripleClick3
События SecondClick запускаются при втором щелчке двойного щелчка, даже если есть третий щелчок, который запустит TripleClick вместо DoubleClick.
Каждый элемент должен иметь суффикс, указывающий местоположение, например, «MouseDown1Status».
Специальный токен «{mouse}» или «=» может использоваться в качестве целевого окна или целевой панели в командах, привязанных к клавишам мыши. Он разрешается в окно или панель, над которой произошло событие мыши (например, окно в строке состояния, над которым была отпущена кнопка 1 для привязки «MouseUp1Status», или панель, над которой было прокручено колесо для привязки «WheelDownPane»).
Флаг -M для команды send-keys может использоваться для перенаправления события мыши на панель.
По умолчанию, при включенной опции мыши, можно использовать мышь для выбора и изменения размера панелей, копирования текста и изменения окон с помощью строки состояния.
ФОРМАТЫ
Некоторые команды принимают флаг -F с аргументом формата. Это строка, которая управляет форматом вывода команды. Переменные формата заключаются в «#{» и «}», например «#{session_name}». Возможные переменные перечислены в таблице ниже, или можно использовать имя опции tmux для значения этой опции, или имя переменной среды. Некоторые переменные имеют более короткие алиасы, такие как «#S»; «##» заменяется на один «#», «#,» на «,» и «#» на «}».
Условные выражения доступны путем добавления префикса «?». Для каждой пары из двух аргументов, если переменная в первом из пары существует и не равна нулю, выбирается второй аргумент, в противном случае происходит переход к следующему. Если ни одно из условных выражений из пар аргументов не совпадает, выбирается значение по умолчанию. Если существует непопарный последний аргумент, он является значением по умолчанию. Если его нет, значением по умолчанию является пустая строка. Например, «#{?session_attached,attached,not attached}» будет включать строку «attached», если сессия подключена, и строку «not attached», если она не подключена, а «#{?automatic-rename,yes,no}» будет включать «yes», если автоматическое переименование включено, или «no», если оно отключено. «#{?#{n:window_name},#{window_name} - }» будет включать имя окна с разделителем в виде дефиса, если имя окна существует, или пустую строку, если имя окна пустое. «#{?session_format,format1,window_format,format2,format3}» будет включать format1 для формата сессии, format2 для формата окна или format3, если ни формат сессии, ни формат окна не определены. Условные выражения могут быть вложены произвольно. Внутри условного выражения «,» и «}» должны быть экранированы как «#,» и «#», если они не являются частью подстановки «#{…}». Например:
#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W
Сравнения строк могут быть выражены путем добавления префикса к двум значениям, разделенным запятой, с помощью «==», «!=», «<», «>», «<=» или «>=» и двоеточия. Например, «#{==:#{host},myhost}» будет заменено на «1», если выполняется на «myhost», в противном случае — на «0». «||» и «&&» оцениваются как true, если любое или все из разделенных запятой значений истинны, например «#{||:#{pane_in_mode},#{alternate_on}}». «!» оценивается как true, если значение ложно, и наоборот, например «#{!:#{pane_in_mode}}». «!!» преобразует значение в каноническую булеву форму, 1 для true и 0 для false, например «#{!!:non-empty string}» оценивается как 1.
Символ ‘m’ указывает на сравнение с использованием шаблона glob(7) или регулярного выражения. Первый аргумент — это шаблон, а второй — строка для сравнения. Дополнительный аргумент задает флаги: ‘r’ означает, что шаблон является регулярным выражением, а не шаблоном glob(7) по умолчанию, а ‘i’ — игнорировать регистр. Например: ‘#{m:*foo*,#{host}}’ или ‘#{m/ri:^A,MYVAR}’. ‘C’ выполняет поиск шаблона glob(7) или регулярного выражения в содержимом панели и возвращает 0, если он не найден, или номер строки, если найден. Как и ‘m’, флаг ‘r’ означает поиск с использованием регулярного выражения, а ‘i’ — игнорировать регистр. Например: ‘#{C/r:^Start}’.
Числовые операции могут выполняться путем добавления перед двумя значениями, разделенными запятой, символа ‘e’ и оператора. Дополнительный флаг ‘f’ может быть указан после оператора, чтобы использовать числа с плавающей точкой, в противном случае используются целые числа. Это может быть дополнено числом, указывающим количество десятичных знаков для результата. Доступные операторы: сложение ‘+’, вычитание ‘-’, умножение ‘*’, деление ‘/’, модуль ‘m’ или ‘%’ (обратите внимание, что ‘%’ необходимо экранировать как ‘%%’ в форматах, которые также расширяются функцией strftime(3)), и операторы числового сравнения ‘==’, ‘!=’, ‘<’, ‘<=’, ‘>’ и ‘>=’. Например, ‘#{e|*|f|4:5.5,3}’ умножает 5.5 на 3, результатом является число с четырьмя десятичными знаками, а ‘#{e|%%:7,3}’ возвращает модуль от 7 и 3. ‘a’ заменяет числовой аргумент его эквивалентом ASCII, поэтому ‘#{a:98}’ дает ‘b’. ‘c’ заменяет цвет tmux на его шестизначное шестнадцатеричное значение RGB.
Можно ограничить длину результирующей строки, добавив в начало число и двоеточие. Положительные числа отсчитываются от начала строки, а отрицательные — от конца, поэтому ‘#{=5:pane_title}’ будет включать не более первых пяти символов заголовка панели, или ‘#{=-5:pane_title}’ — последние пять символов. Суффикс или префикс можно указать в качестве второго аргумента — если он указан, то он добавляется в конец или в начало строки, если длина была усечена, например, ‘\#{=/5/...:pane\_title}’ добавит ‘...’, если заголовок панели длиннее пяти символов. Аналогично, ‘p’ дополняет строку до заданной ширины, например, ‘\#{p10:pane\_title}’ приведет к ширине не менее 10 символов. Положительная ширина дополняет слева, отрицательная — справа. ‘n’ расширяется до длины переменной, а ‘w’ — до ее ширины при отображении, например, ‘#{n:window_name}’. ‘R’ повторяет первый аргумент указанное число раз, поэтому ‘#{R:a,3}’ даст ‘aaa’.
Добавление префикса «t:» к переменной времени преобразует ее в строку, поэтому, если «\#{window_activity}» дает «1445765102», то «\#{t:window_activity}» дает «Sun Oct 25 09:25:02 2015». Добавление «p» («`t/p`») будет использовать более короткий, но менее точный формат времени для времен в прошлом. Пользовательский формат можно задать с помощью суффикса «f» (обратите внимание, что символ «%» необходимо экранировать как «%%», если формат передается отдельно в функцию strftime(3), например, в опции status-left): «\#{t/f/%%H#:%%M:window_activity}», см. strftime(3).
Префиксы «b:» и «d:» — это basename(3) и dirname(3) переменной соответственно. «q:» экранирует специальные символы sh(1) или, с суффиксом «h», символы хеша (так что «#» становится «##»). «E:» расширяет формат дважды, например, «#{E:status-left}» — это результат расширения содержимого опции status-left, а не самой опции. «T:» аналогичен «E:», но также расширяет спецификаторы strftime(3). «S:», «W:», «P:» или «L:» будут перебирать все сеансы, окна, панели или клиенты и вставлять формат один раз для каждого. «L:», «S:» и «W:» могут принимать необязательный аргумент сортировки «/i», «/n», «/t» для сортировки по индексу, имени или времени последней активности, а также «/r» для сортировки в обратном порядке. «/r» также можно использовать с «P:» для изменения порядка сортировки панелей по индексу. Например, «S/nr:», чтобы отсортировать сеансы по имени в обратном порядке. Для каждого из них можно указать два формата, разделенных запятой: второй используется для текущего окна, активной панели или активного сеанса. Например, чтобы получить список окон, отформатированный как строка состояния:
\#{W:#{E:window-status-format} ,\#{E:window-status-current-format} }
«N:» проверяет, существует ли имя окна (без каких-либо суффиксов или с суффиксом «w») или сеанса (с суффиксом «s»), например, «N/w:foo» заменяется на 1, если существует окно с именем «foo».
Префикс в виде «s/foo/bar/:» заменит «foo» на «bar» повсюду. Первый аргумент может быть расширенным регулярным выражением, а последний аргумент может быть «i», чтобы игнорировать регистр, например, «s/a(.)/\1x/i:» изменит «abABab» на «bxBxbx». Можно использовать другой символ-разделитель, чтобы избежать коллизий с буквальными слешами в шаблоне. Например, «s|foo/|bar/|:» заменит «foo/» на «bar/».
Несколько модификаторов могут быть разделены точкой с запятой (;), например, «#{T;=10:status-left}», что ограничивает результирующую строку, полученную после развертывания strftime(3), максимум 10 символами.
Кроме того, последняя строка вывода shell-команды может быть вставлена с помощью «#()». Например, «#(uptime)» вставит время работы системы. При создании форматов tmux не ждет завершения команд «#()», вместо этого используется предыдущий результат выполнения той же команды или заполнитель, если команда не выполнялась ранее. Если команда не завершена, будет использована последняя строка вывода, но строка состояния не будет обновляться чаще одного раза в секунду. Команды выполняются с использованием /bin/sh и с установленной глобальной средой tmux (см. раздел «ГЛОБАЛЬНАЯ И СЕССИОННАЯ СРЕДА»).
«l» указывает, что строку следует интерпретировать буквально и не расширять. Например, «\#{l:#{?pane_in_mode,yes,no}}» будет заменено на «\#{?pane_in_mode,yes,no}}».
Доступны следующие переменные, где это применимо:
Имя переменной Псевдоним Заменяется на
active_window_index Индекс активного окна в сессии
alternate_on 1, если панель находится в альтернативном экране
alternate_saved_x Сохраненное значение X курсора в альтернативном экране
alternate_saved_y Сохраненное значение Y курсора в альтернативном экране
buffer_created Время создания буфера
buffer_full Полное содержимое буфера
buffer_name Имя буфера
buffer_sample Пример начала буфера
buffer_size Размер указанного буфера в байтах
client_activity Время последней активности клиента
client_cell_height Высота каждой ячейки клиента в пикселях
client_cell_width Ширина каждой ячейки клиента в пикселях
client_control_mode 1, если клиент находится в режиме управления
client_created Время создания клиента
client_discarded Количество байтов, отброшенных при отставании клиента
client_flags Список флагов клиента
client_height Высота клиента
client_key_table Текущая таблица клавиш
client_last_session Имя последней сессии клиента
client_name Имя клиента
client_pid PID процесса клиента
client_prefix 1, если нажата клавиша префикса
client_readonly 1, если клиент находится в режиме только для чтения
client_session Имя сессии клиента
client_termfeatures Терминальные возможности клиента, если таковые имеются
client_termname Имя терминала клиента
client_termtype Тип терминала клиента, если доступно
client_tty Псевдотерминал клиента
client_uid UID процесса клиента
client_user Пользователь процесса клиента
client_utf8 1, если клиент поддерживает UTF-8
client_width Ширина клиента
client_written Количество байтов, записанных в клиент
command Имя используемой команды, если таковая имеется
command_list_alias Псевдоним команды при перечислении команд
command_list_name Имя команды при перечислении команд
command_list_usage Использование команды при перечислении команд
config_files Список загруженных файлов конфигурации
cursor_blinking 1, если курсор мигает
copy_cursor_hyperlink Гиперссылка под курсором в режиме копирования
copy_cursor_line Строка, на которой находится курсор в режиме копирования
copy_cursor_word Слово под курсором в режиме копирования
copy_cursor_x Позиция X курсора в режиме копирования
copy_cursor_y Позиция Y курсора в режиме копирования
current_file Текущий файл конфигурации
cursor_character Символ под курсором в панели
cursor_colour Цвет курсора в панели
cursor_flag Флаг курсора панели
cursor_shape Форма курсора в панели
cursor_very_visible 1, если курсор находится в очень видимом режиме
cursor_x Позиция X курсора
cursor_y Позиция Y курсора
server_sessions Количество сессий
session_active 1, если сессия активна
session_activity Время последней активности сессии
session_activity_flag 1, если какое-либо окно в сессии имеет активность
session_alerts Список индексов окон с предупреждениями
session_attached Количество клиентов, подключенных к сессии
session_attached_list Список клиентов, подключенных к сессии
session_bell_flag 1, если какое-либо окно в сессии имеет звуковой сигнал
session_created Время создания сессии
session_format 1, если формат предназначен для сессии
session_group Имя группы сессий
session_group_attached Количество клиентов, сессии которых в группе подключены
session_group_attached_list Список клиентов, сессии которых в группе подключены
session_group_list Список сессий в группе
session_group_many_attached 1, если к сессиям в группе подключено несколько клиентов
session_group_size Размер группы сессий
session_grouped 1, если сессия находится в группе
session_id Уникальный идентификатор сессии
session_index Индекс сессии
session_last_attached Время последнего подключения к сессии
session_many_attached 1, если к сессии подключено несколько клиентов
session_marked 1, если эта сессия содержит выделенную панель
session_name #S Имя сессии
session_path Рабочий каталог сессии
session_silence_flag 1, если какое-либо окно в сессии имеет предупреждение о тишине
session_stack Индексы окон в наиболее недавнем порядке
session_windows Количество окон в сессии
socket_path Путь к серверному сокету
sixel_support 1, если сервер поддерживает SIXEL
start_time Время запуска сервера
uid UID сервера
user Пользователь сервера
version Версия сервера
window_active 1, если окно активно
window_active_clients Количество клиентов, просматривающих это окно
window_active_clients_list Список клиентов, просматривающих это окно
window_active_sessions Количество сессий, в которых это окно активно
window_active_sessions_list Список сессий, в которых это окно активно
window_activity Время последней активности окна
window_activity_flag 1, если окно имеет активность
window_bell_flag 1, если окно имеет звуковой сигнал
window_bigger 1, если окно больше клиента
window_cell_height Высота каждой ячейки в пикселях
window_cell_width Ширина каждой ячейки в пикселях
window_end_flag 1, если окно имеет наибольший индекс
window_flags #F Флаги окна, где # экранируется как ##
window_format 1, если формат предназначен для окна
window_height Высота окна
window_id Уникальный идентификатор окна
window_index #I Индекс окна
window_last_flag 1, если окно является последним использованным
window_layout Описание макета окна, игнорируя увеличенные панели
window_linked 1, если окно связано между сессиями
window_linked_sessions Количество сессий, к которым связано это окно
window_linked_sessions_list Список сессий, к которым связано это окно
window_marked_flag 1, если окно содержит выделенную панель
window_name #W Имя окна
window_offset_x Смещение X в окне, если оно больше клиента
window_offset_y Смещение Y в окне, если оно больше клиента
window_panes Количество панелей в окне
window_raw_flags Флаги окна, без экранирования
window_silence_flag 1, если окно имеет предупреждение о тишине
window_stack_index Индекс в наиболее недавнем стеке сессии
window_start_flag 1, если окно имеет наименьший индекс
window_visible_layout Описание макета окна, учитывающее увеличенные панели
window_width Ширина окна
window_zoomed_flag 1, если окно увеличено
wrap_flag Флаг переноса строки панели
СТИЛИ
tmux предлагает различные варианты для указания цвета и атрибутов различных элементов интерфейса, например, `status-style` для строки состояния. Кроме того, встроенные стили можно указывать в опциях форматирования, таких как `status-left`, заключая их в `'['` и `']'`.
Стиль может быть одним словом `default`, чтобы указать стиль по умолчанию (который может быть получен из опции, например, `status-style` в строке состояния), или списком, разделенным пробелами или запятыми, из следующих элементов:
`fg=colour`
Устанавливает цвет переднего плана. Цвет может быть одним из: black, red, green, yellow, blue,
magenta, cyan, white; если поддерживается, также доступны яркие варианты: brightblack, brightred, ...;
colour0 до colour255 из 256-цветной палитры; default для цвета по умолчанию; terminal для цвета по умолчанию терминала; или строка RGB в шестнадцатеричном формате, например '#ffffff'.
bg=colour
Устанавливает цвет фона.
us=colour
Устанавливает цвет подчеркивания.
none
Отключает все атрибуты (отменяет все активные атрибуты).
acs, bright (или bold), dim, underscore, blink, reverse, hidden, italics, overline, strikethrough,
double-underscore, curly-underscore, dotted-underscore, dashed-underscore
Устанавливает атрибут. Любой из атрибутов может быть снабжен префиксом «no» для отмены. acs — это альтернативный набор символов терминала.
align=left (или noalign), align=centre, align=right
Выравнивает текст по левому краю, центру или правому краю доступного пространства, если это уместно.
fill=colour
Заполняет доступное пространство цветом фона, если это уместно.
list=on, list=focus, list=left-marker, list=right-marker, nolist
Определяет положение различных компонентов списка в опции status-format: list=on отмечает начало списка; list=focus — это часть списка, которая должна оставаться в фокусе, если весь список не помещается в доступном пространстве (обычно это текущее окно); list=left-marker и list=right-marker отмечают текст, который будет использоваться для обозначения того, что текст был обрезан слева или справа, если недостаточно места.
noattr
Не копировать атрибуты из стиля по умолчанию.
push-default, pop-default
Сохраняет текущие цвета и атрибуты в качестве значения по умолчанию или восстанавливает предыдущее значение по умолчанию. push-default влияет на любое последующее использование стиля по умолчанию до тех пор, пока не будет выполнена команда pop-default. Можно сохранить только одно значение по умолчанию (каждая команда push-default заменяет предыдущее сохраненное значение по умолчанию).
range=left, range=right, range=session|X, range=window|X, range=pane|X, range=user|X, norange
Определяет диапазон для событий мыши в опции status-format. При возникновении события мыши в диапазоне range=left или range=right запускаются привязки клавиш «StatusLeft» и «StatusRight».
range=session|X, range=window|X и range=pane|X — это диапазоны для сеанса, окна или панели.
Они запускают привязку клавиш «Status» с целевым сеансом, окном или панелью, указанными аргументом «X».
«X» — это идентификатор сеанса, индекс окна в текущем сеансе или идентификатор панели. Для этих диапазонов
форматная переменная mouse_status_range будет иметь значение «session», «window» или «pane».
range=user|X — это пользовательский диапазон; он запускает привязку клавиш «Status».
Аргумент «X» будет доступен в форматной переменной mouse_status_range. «X» должен быть не длиннее 15 байт.
set-default
Устанавливает текущие цвета и атрибуты в качестве значения по умолчанию, перезаписывая любое предыдущее значение по умолчанию. Предыдущее значение по умолчанию нельзя восстановить.
Примеры:
fg=yellow bold underscore blink
bg=black,fg=default,noreverse
ИМЕНА И ЗАГОЛОВКИ
tmux различает имена и заголовки. Окна и сеансы имеют имена, которые можно использовать для их указания в целевых объектах
и которые отображаются в строке состояния и в различных списках: имя — это идентификатор окна или сеанса tmux.
Только у панелей есть заголовки. Заголовок панели обычно задается программой, работающей внутри панели,
с помощью управляющей последовательности (как она задала бы заголовок окна xterm(1) в X(7)).
Сами окна не имеют заголовков — заголовок окна — это заголовок его активной панели.
tmux может задавать заголовок терминала, в котором работает клиент, см. опцию set-titles.
Имя сессии задается командами new-session и rename-session. Имя окна задается одним из следующих способов:
Аргументом команды (например, -n для new-window или new-session).
Последовательностью escape (если опция allow-rename включена):
$ printf '\033kWINDOW_NAME\033\\'
Автоматическое переименование, которое устанавливает имя равным активной команде в активной панели окна. См. опцию automatic-rename.
При первом создании панели ее заголовок — имя хоста. Заголовок панели можно задать с помощью последовательности escape title, например:
$ printf '\033]2;My Title\033\\'
Его также можно изменить с помощью команды select-pane -T.
ГЛОБАЛЬНАЯ И СЕССИОННАЯ ПЕРЕМЕННЫЕ СРЕДЫ
При запуске сервера tmux копирует среду в глобальную среду; кроме того, у каждой сессии есть собственная сессионная среда. При создании окна сессионная и глобальная среды объединяются. Если переменная существует в обеих средах, используется значение из сессионной среды. В результате получается начальная среда, передаваемая новому процессу.
Опция сессии update-environment может использоваться для обновления сессионной среды из клиентского приложения при создании новой сессии или повторном подключении к старой. Tmux также инициализирует переменную TMUX некоторой внутренней информацией, позволяющей выполнять команды внутри, и переменную TERM с правильной настройкой терминала на screen.
Переменные как в сессионной, так и в глобальной среде могут быть помечены как скрытые. Скрытые переменные не передаются в среду новых процессов и могут использоваться только самим tmux (например, в форматах, см. раздел «ФОРМАТЫ»).
Команды для изменения и просмотра среды:
set-environment [-Fhgru] [-t target-session] variable [value]
(alias: setenv)
Устанавливает или удаляет переменную среды. Если используется -g, изменение вносится в глобальную среду; в противном случае оно применяется к сессионной среде для target-session. Если присутствует -F, то value расширяется как формат. Флаг -u удаляет переменную. -r указывает, что переменная должна быть удалена из среды перед запуском нового процесса. -h помечает переменную как скрытую.
show-environment [-hgs] [-t target-session] [variable]
(alias: showenv)
Отображает среду для target-session или глобальную среду с помощью -g. Если variable не указана, отображаются все переменные. Переменные, удаленные из среды, имеют префикс '-'. Если используется -s, вывод форматируется как набор команд оболочки Bourne. -h показывает скрытые переменные (по умолчанию они опускаются).
СТАТУСНАЯ СТРОКА
tmux включает в себя необязательную статусную строку, которая отображается в нижней строке каждого терминала.
По умолчанию статусная строка включена и имеет высоту в одну строку (ее можно отключить или сделать многострочной с помощью опции status-session). Она содержит, слева направо: имя текущей сессии в квадратных скобках; список окон; заголовок активной панели в двойных кавычках; и время и дату.
Каждая строка статусной строки настраивается с помощью опции status-format. По умолчанию она состоит из трех частей: настраиваемых левой и правой секций (которые могут содержать динамический контент, такой как время или вывод команды оболочки, см. опции status-left, status-left-length, status-right и status-right-length ниже) и центрального списка окон. По умолчанию список окон показывает индекс, имя и (при наличии) флаг окон, присутствующих в текущей сессии, в порядке возрастания числовых индексов. Он может быть настроен с помощью опций window-status-format и window-status-current-format. Флаг — это один из следующих символов, добавляемых к имени окна:
Символ Значение * Обозначает текущее окно. - Отмечает последнее выбранное окно. # Активность окна отслеживается и обнаружена. ! Звуковые сигналы окна отслеживаются, и в окне прозвучал сигнал. ~ Окно было бездействующим в течение интервала monitor-silence. M Окно содержит выделенную панель. Z Активная панель окна увеличена.
Символ # относится к опции monitor-activity окна. Имя окна печатается инвертированным цветом, если присутствует предупреждение (звуковой сигнал, активность или бездействие).
Цвет и атрибуты статусной строки можно настроить, используя опцию status-style для всей статусной строки и опцию window-status-style для отдельных окон.
Стасусная строка автоматически обновляется через определенный интервал, если она изменилась. Интервал можно управлять с помощью опции status-interval.
Следующие команды относятся к статусной строке:
clear-prompt-history [-T prompt-type]
(alias: clearphist)
Очистить историю статусных подсказок для типа подсказки prompt-type. Если -T опущено, то очистить историю для всех типов. См. command-prompt для возможных значений prompt-type.
command-prompt [-1bFiklN] [-I inputs] [-p prompts] [-t target-client] [-T prompt-type] [template]
Открыть подсказку команды в клиенте. Это можно использовать внутри tmux для интерактивного выполнения команд.
Если указан template, он используется в качестве команды. С опцией -F, шаблон разворачивается как формат.
Если присутствует -I, то inputs — это список, разделенный запятыми, начального текста для каждой подсказки. Если указано -p, то prompts — это список подсказок, разделенных запятыми, которые отображаются по порядку; в противном случае отображается одна подсказка, созданная из template, если он указан, или ':' в противном случае. -l отключает разделение inputs и prompts по запятым и обрабатывает их дословно.
Перед выполнением команды первое вхождение строки ‘%%’ и все вхождения ‘%1’ заменяются ответом на первый запрос, все ‘%2’ заменяются ответом на второй запрос и так далее для последующих запросов. Можно заменить до девяти ответов на запросы (‘%1’ до ‘%9’). ‘%%%’ аналогичен ‘%%’, но все кавычки экранируются.
-1 указывает, что запрос должен принимать только одно нажатие клавиши, в этом случае полученный ввод представляет собой один символ. -k аналогичен -1, но нажатие клавиши преобразуется в название клавиши. -N указывает, что запрос должен принимать только числовые нажатия клавиш. -i выполняет команду каждый раз, когда изменяется ввод в запросе, а не когда пользователь выходит из командной строки.
-T сообщает tmux тип запроса. Это влияет на то, какие варианты автозаполнения предлагаются при нажатии клавиши Tab. Доступные типы: ‘command’ (команда), ‘search’ (поиск), ‘target’ (цель) и ‘window-target’ (цель окна).
Следующие клавиши имеют специальное значение в командной строке, в зависимости от значения опции status-keys:
Функция vi emacs
Отмена командной строки q Escape
Удаление от курсора до начала слова C-w
Удаление всей команды d C-u
Удаление от курсора до конца D C-k
Выполнение команды Enter Enter
Получение следующей команды из истории Down
Получение предыдущей команды из истории Up
Вставка из верхнего буфера p C-y
Поиск вариантов автозаполнения Tab Tab
Перемещение курсора влево h Left
Перемещение курсора вправо l Right
Перемещение курсора в конец $ C-e
Перемещение курсора к следующему слову w M-f
Перемещение курсора к предыдущему слову b M-b
Перемещение курсора в начало 0 C-a
Перестановка символов C-t
С -b запрос отображается в фоновом режиме, и вызывающий клиент не завершает работу, пока он не будет отклонен.
confirm-before [-by] [-c confirm-key] [-p prompt] [-t target-client] command
(alias: confirm) Запрашивает подтверждение перед выполнением команды. Если указан -p, то prompt — это отображаемый запрос; в противном случае запрос создается из команды. Он может содержать специальные символы, поддерживаемые опцией status-left. С -b запрос отображается в фоновом режиме, и вызывающий клиент не завершает работу, пока он не будет отклонен. -y изменяет поведение по умолчанию (если нажата только клавиша Enter) запроса, чтобы выполнять команду. -c изменяет клавишу подтверждения на confirm-key; по умолчанию — ‘y’.
display-menu [-OM] [-b border-lines] [-c target-client] [-C starting-choice] [-H selected-style]
[-s style] [-S border-style] [-t target-pane] [-T title] [-x position] [-y position] name
key command [name key command ...]
(alias: menu) Отображает меню в target-client. target-pane указывает целевой элемент для любых команд, выполняемых из меню.
Меню передается в виде последовательности аргументов: сначала имя пункта меню, затем сочетание клавиш (или пустая строка, если сочетание отсутствует) и, наконец, команда, которая будет выполнена при выборе пункта меню. Имя и команда форматируются, см. разделы «ФОРМАТЫ» и «СТИЛИ». Если имя начинается с дефиса (-), то пункт меню будет отключен (отображается приглушенным цветом) и не может быть выбран. Имя может быть пустым для строки-разделителя, в этом случае сочетание клавиш и команду следует опустить.
-b задает тип символов, используемых для отрисовки границ меню. См. раздел `popup-border-lines` для получения возможных значений для `border-lines`.
-H задает стиль для выбранного пункта меню (см. раздел «СТИЛИ»).
-s задает стиль для меню, а -S — стиль для границы меню (см. раздел «СТИЛИ»).
-T — это формат для заголовка меню (см. раздел «ФОРМАТЫ»).
-C задает пункт меню, выбранный по умолчанию, если меню не связано с привязкой к клавише мыши.
-x и -y задают положение меню. Оба параметра могут быть номером строки или столбца, либо одним из следующих специальных значений:
Значение Флаг Значение C Оба Центр терминала R -x Правая сторона терминала P Оба Левый нижний угол панели M Оба Положение мыши W Оба Положение окна на строке состояния S -y Строка над или под строкой состояния
Или формат, который расширяется с использованием следующих дополнительных переменных:
Имя переменной Заменяется на
popup_centre_x Центр клиентской области
popup_centre_y Центр клиентской области
popup_height Высота меню или всплывающего окна
popup_mouse_bottom Нижняя часть в положении мыши
popup_mouse_centre_x Горизонтальный центр в положении мыши
popup_mouse_centre_y Вертикальный центр в положении мыши
popup_mouse_top Верхняя часть в положении мыши
popup_mouse_x Положение мыши по оси X
popup_mouse_y Положение мыши по оси Y
popup_pane_bottom Нижняя часть панели
popup_pane_left Левая сторона панели
popup_pane_right Правая сторона панели
popup_pane_top Верхняя часть панели
popup_status_line_y Над или под строкой состояния
popup_width Ширина меню или всплывающего окна
popup_window_status_line_x В положении окна на строке состояния
popup_window_status_line_y На строке состояния, отображающей окно
Каждое меню состоит из пунктов, за которыми следует сочетание клавиш, заключенное в квадратные скобки. Если меню слишком велико, чтобы поместиться в терминале, оно не отображается. Нажатие сочетания клавиш выбирает соответствующий пункт. Если мышь включена, и меню открывается из привязки к клавише мыши, отпускание кнопки мыши при выбранном пункте выбирает этот пункт, а отпускание кнопки мыши без выбора пункта закрывает меню. Опция -O изменяет это поведение так, что меню не закрывается при отпускании кнопки мыши без выбора пункта, и для выбора пункта необходимо щелкнуть кнопку мыши.
-M сообщает tmux, что меню должно обрабатывать события мыши; по умолчанию это делают только меню, открытые с помощью привязок клавиш мыши.
В меню доступны следующие клавиши:
Клавиша Функция
Enter Выбрать выбранный пункт
Вверх Выбрать предыдущий пункт
Вниз Выбрать следующий пункт
q Выйти из меню
display-message [-aCIlNpv] [-c target-client] [-d delay] [-t target-pane] [message]
(alias: display)
Отобразить сообщение. Если указан параметр -p, вывод печатается в стандартный поток вывода, в противном случае он отображается в строке состояния целевого клиента в течение указанного количества миллисекунд (delay). Если параметр delay не указан, используется опция display-time; задержка, равная нулю, ожидает нажатия клавиши. Параметр ‘N’ игнорирует нажатия клавиш и закрывает сообщение только после истечения времени задержки. Если указан параметр -C, панель будет продолжать обновляться во время отображения сообщения. Если указан параметр -l, сообщение выводится без изменений. В противном случае формат сообщения описан в разделе «ФОРМАТЫ»; информация берется из целевой панели, если указан параметр -t, в противном случае — из активной панели.
-v выводит подробные сообщения об отладке во время разбора формата, а -a перечисляет переменные формата и их значения.
-I перенаправляет любой ввод, считываемый из стандартного ввода, в пустую панель, указанную в target-pane.
display-popup [-BCEkN] [-b border-lines] [-c target-client] [-d start-directory] [-e environment]
[-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x
position] [-y position] [shell-command [argument ...]]
(alias: popup)
Отобразить всплывающее окно, в котором выполняется команда shell-command (или команда по умолчанию, если она не указана) в target-client.
Всплывающее окно — это прямоугольная область, нарисованная поверх панелей. Панели не обновляются, пока присутствует всплывающее окно. Если команда выполняется внутри существующего всплывающего окна, это всплывающее окно изменяется. В этом случае принимаются только параметры -b, -B, -C, -E, -EE, -K, -N, -s и -S; все остальные параметры игнорируются.
-E автоматически закрывает всплывающее окно после завершения работы команды shell-command. Если указаны два параметра -E, всплывающее окно закрывается только в том случае, если команда shell-command завершилась успешно. Параметр -k позволяет закрыть всплывающее окно с помощью любой клавиши, а не только клавиш Escape или C-c.
-x и -y указывают положение всплывающего окна; они имеют то же значение, что и для команды display-menu. Параметры -w и -h указывают ширину и высоту — оба параметра могут быть указаны в виде процента (с последующим символом «%»). Если параметры не указаны, используется половина размера терминала.
-B не отображает границу вокруг всплывающего окна.
-b задает тип символов, используемых для рисования границ всплывающего окна. Если указан параметр -B, параметр -b игнорируется. Возможные значения для border-lines см. в разделе popup-border-lines.
-s задает стиль для всплывающего окна, а -S задает стиль для границы всплывающего окна (см. раздел «СТИЛИ»).
-e имеет формат «ПЕРЕМЕННАЯ=значение» и задает переменную среды для всплывающего окна; его можно указать несколько раз.
-T — формат для заголовка всплывающего окна (см. «ФОРМАТЫ»).
Флаг -C закрывает любое всплывающее окно на клиенте.
-N отключает любые ранее указанные параметры -E, -EE или -k.
show-prompt-history [-T тип-подсказки]
(псевдоним: showphist)
Отображает историю подсказок для указанного типа подсказки. Если -T не указан, отображается история для всех типов. Возможные значения для тип-подсказки см. в команде command-prompt.
БУФЕРЫ
tmux поддерживает набор именованных буферов. Каждый буфер может быть явно или автоматически именован. Явно именованные буферы получают имя при создании с помощью команд set-buffer или load-buffer, или путем переименования автоматически именованного буфера с помощью set-buffer -n. Автоматически именованные буферы получают имена, такие как «buffer0001», «buffer0002» и т. д. Когда достигнут предел буферов, указанный в параметре buffer-limit, самый старый автоматически именованный буфер удаляется. Явно именованные буферы не зависят от buffer-limit и могут быть удалены с помощью команды delete-buffer.
Буферы можно добавлять с помощью режима копирования или команд set-buffer и load-buffer, а затем вставлять в окно с помощью команды paste-buffer. Если используется команда буфера и буфер не указан, предполагается, что используется последний добавленный автоматически именованный буфер.
Также для каждого окна поддерживается настраиваемый буфер истории. По умолчанию хранится до 2000 строк; это можно изменить с помощью параметра history-limit (см. команду set-option выше).
Команды буфера:
choose-buffer [-NryZ] [-F формат] [-f фильтр] [-K формат-ключа] [-O порядок-сортировки] [-t целевая-панель]
[шаблон]
Переводит панель в режим буфера, где буфер можно выбрать интерактивно из списка.
Каждый буфер отображается в одной строке. В левой части отображается сочетание клавиш, позволяющее выбрать буфер немедленно, или список можно просматривать, выбирать элемент или выполнять другие действия с помощью следующих клавиш. -Z увеличивает размер панели. -y отключает любые запросы подтверждения. Доступные клавиши в режиме буфера:
Клавиша Функция
Enter Вставить выбранный буфер
Вверх Выбрать предыдущий буфер
Вниз Выбрать следующий буфер
C-s Поиск по имени или содержимому
n Повторить последний поиск вперед
N Повторить последний поиск назад
t Переключить, помечен ли буфер
T Снять отметки со всех буферов
C-t Пометить все буферы
p Вставить выбранный буфер
P Вставить помеченные буферы
d Удалить выбранный буфер
D Удалить помеченные буферы
e Открыть буфер в редакторе
f Ввести формат для фильтрации элементов
O Изменить поле сортировки
r Изменить порядок сортировки
v Переключить предварительный просмотр
q Выйти из режима
После выбора буфера «%%» заменяется именем буфера в шаблоне, и результат выполняется как команда. Если шаблон не указан, используется «paste-buffer -p -b '%%'».
-O указывает начальное поле сортировки: одно из «time» (по времени создания), «name» или «size». -r меняет порядок сортировки. -f указывает начальный фильтр: фильтр представляет собой формат, и если он возвращает ноль, элемент в списке не отображается, в противном случае он отображается. Если фильтр приведет к пустому списку, он игнорируется. -F указывает формат для каждого элемента в списке, а -K — формат для каждой клавиши-ярлыка; оба они вычисляются один раз для каждой строки. -N запускает процесс без предварительного просмотра. Эта команда работает только в том случае, если хотя бы один клиент подключен.
clear-history [-H] [-t target-pane]
(alias: clearhist)
Удаляет и освобождает историю для указанной панели. Опция -H также удаляет все гиперссылки.
delete-buffer [-b buffer-name]
(alias: deleteb)
Удаляет буфер с указанным именем buffer-name или самый последний добавленный буфер с автоматически сгенерированным именем, если имя не указано.
list-buffers [-F format] [-f filter]
(alias: lsb)
Выводит список глобальных буферов. Опция -F задает формат каждой строки, а -f — фильтр. Отображаются только буферы, для которых фильтр возвращает истинное значение. См. раздел «ФОРМАТЫ».
load-buffer [-w] [-b buffer-name] [-t target-client] path
(alias: loadb)
Загружает содержимое указанного буфера из файла path. Если указана опция -w, буфер также отправляется в буфер обмена для target-client с использованием escape-последовательности xterm(1), если это возможно. Если path равен «-», содержимое считывается из стандартного ввода.
paste-buffer [-dpr] [-b buffer-name] [-s separator] [-t target-pane]
(alias: pasteb)
Вставляет содержимое буфера в указанную панель. Если не указано, вставляет в текущую панель. С опцией -d буфер также удаляется. При выводе все символы новой строки (LF) в буфере заменяются разделителем, по умолчанию символом возврата каретки (CR). Пользовательский разделитель можно указать с помощью флага -s. Флаг -r означает, что замена не производится (эквивалентно разделителю LF). Если указана опция -p, вокруг буфера вставляются управляющие коды скобок, если приложение запросило режим вставки в скобки.
save-buffer [-a] [-b buffer-name] path
(alias: saveb)
Сохраняет содержимое указанного буфера в файл path. Опция -a добавляет данные в файл, а не перезаписывает его. Если path равен «-», содержимое записывается в стандартный вывод.
set-buffer [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data
(alias: setb)
Устанавливает содержимое указанного буфера в data. Если указана опция -w, буфер также отправляется в буфер обмена для target-client с использованием escape-последовательности xterm(1), если это возможно. Опция -a добавляет данные в буфер, а не перезаписывает его. Опция -n переименовывает буфер в new-buffer-name.
show-buffer [-b buffer-name]
(alias: showb)
Отображает содержимое указанного буфера.
РАЗНОЕ
Различные команды следующие:
clock-mode [-t target-pane]
Отображает большие часы.
if-shell [-bF] [-t target-pane] shell-command command [command]
(alias: if)
Выполняет первую команду, если shell-command (запускается с /bin/sh) возвращает успешный код выхода, или вторую команду в противном случае. Прежде чем быть выполненной, shell-command расширяется с использованием правил, указанных в разделе «ФОРМАТЫ», включая те, которые относятся к target-pane. С опцией -b, shell-command запускается в фоновом режиме.
Если указан параметр -F, команда оболочки не выполняется, но считается успешной, если она не пуста и не равна нулю (после расширения форматов).
lock-server
(алиас: lock) Блокирует каждого клиента индивидуально, выполняя команду, указанную в параметре lock-command.
run-shell [-bCE] [-c start-directory] [-d delay] [-t target-pane] [shell-command]
(алиас: run) Выполняет shell-command, используя /bin/sh или (с параметром -C) команду tmux в фоновом режиме, не создавая окно. Прежде чем команда будет выполнена, shell-command расширяется в соответствии с правилами, указанными в разделе «ФОРМАТЫ». С параметром -b команда выполняется в фоновом режиме. Параметр -d ожидает указанное количество секунд, прежде чем начать выполнение команды. Параметр -E перенаправляет stderr команды в stdout вместо того, чтобы игнорировать его. Если указан параметр -c, текущий рабочий каталог устанавливается в start-directory. Если не указан параметр -C, любой вывод в stdout отображается в режиме просмотра (в панели, указанной в параметре -t, или в текущей панели, если параметр не указан) после завершения команды. Если команда завершается с ошибкой, отображается код выхода.
wait-for [-L | -S | -U] channel
(алиас: wait) При использовании без параметров предотвращает выход клиента, пока он не будет разблокирован с помощью wait-for -S с тем же каналом. При использовании параметра -L канал блокируется, и любые клиенты, пытающиеся заблокировать тот же канал, будут ждать, пока канал не будет разблокирован с помощью wait-for -U.
СООБЩЕНИЯ О ЗАВЕРШЕНИИ РАБОТЫ
Когда клиент tmux отсоединяется, он выводит сообщение. Это может быть одним из следующих:
detached (from session ...)
Клиент был отсоединен нормально.
detached and SIGHUP
Клиент был отсоединен, и его родительский процесс отправил сигнал SIGHUP (например, с помощью detach-client -P).
lost tty
tty(4) или pty(4) клиента был неожиданно уничтожен.
terminated
Клиент был убит сигналом SIGTERM.
too far behind
Клиент находится в режиме управления и не может успевать за данными от tmux.
exited
Сервер завершил работу, когда у него не было сессий.
server exited
Сервер завершил работу после получения сигнала SIGTERM.
server exited unexpectedly
Сервер аварийно завершил работу или завершился каким-либо другим образом, не сообщив клиенту причину.
РАСШИРЕНИЯ TERMINFO
tmux понимает некоторые неофициальные расширения для terminfo(5). Обычно нет необходимости устанавливать их вручную; вместо этого следует использовать параметр terminal-features.
AX
Существующее расширение, которое сообщает tmux, что терминал поддерживает цвета по умолчанию.
Bidi
Сообщает tmux, что терминал поддерживает расширения VTE для двунаправленного текста.
Cs, Cr
Задает цвет курсора. Первый аргумент — это строка, которая используется для установки цвета; второй аргумент не принимает никаких параметров и восстанавливает цвет курсора по умолчанию. Если установлено, последовательность, подобная следующей, может быть использована для изменения цвета курсора внутри tmux:
$ printf '\033]12;red\033\\'
Цвет является X(7) цветом, см. XParseColor(3).
Cmg, Clmg, Dsmg, Enmg
Устанавливает, очищает, отключает или включает поля DECSLRM. Они устанавливаются автоматически, если терминал сообщает, что он совместим с VT420.
Dsbp, Enbp
Отключает и включает вставку в скобках. Они устанавливаются автоматически, если присутствует возможность XT.
Dseks, Eneks
Отключает и включает расширенные клавиши.
Dsfcs, Enfcs
Отключает и включает отчетность о фокусе. Они устанавливаются автоматически, если присутствует возможность XT.
Hls Устанавливает или очищает аннотацию гиперссылки.
Nobr Сообщает tmux, что терминал не использует яркие цвета для отображения полужирным шрифтом.
Rect Сообщает tmux, что терминал поддерживает операции с прямоугольниками.
Smol Включает атрибут надчеркивания.
Smulx Устанавливает стилизованное подчеркивание. Единственный параметр — это: 0 для отсутствия подчеркивания, 1 для обычного подчеркивания, 2 для двойного подчеркивания, 3 для фигурного подчеркивания, 4 для точечного подчеркивания и 5 для пунктирного подчеркивания.
Setulc, Setulc1, ol
Устанавливает цвет подчеркивания или сбрасывает его до значения по умолчанию. Setulc предназначен для RGB-цветов, а Setulc1 — для ANSI- или 256-цветов. Аргумент Setulc — это (красный * 65536) + (зеленый * 256) + синий, где каждое значение находится в диапазоне от 0 до 255.
Ss, Se Устанавливает или сбрасывает стиль курсора. Если установлено, можно использовать такую последовательность для изменения курсора на подчеркивание:
$ printf '\033[4 q'
Если Se не установлено, Ss с аргументом 0 будет использоваться для сброса стиля курсора.
Swd Устанавливает начальную последовательность для уведомления о рабочей директории. Последовательность завершается с помощью стандартной возможности fsl.
Sxl Указывает, что терминал поддерживает SIXEL.
Sync Начинает (параметр равен 1) или заканчивает (параметр равен 2) синхронизированное обновление.
Tc Указывает, что терминал поддерживает прямую RGB-последовательность (например, \e[38;2;255;255;255m).
Если поддерживается, она используется для последовательности инициализации цвета (которую можно включить, добавив возможности ‘initc’ и ‘ccc’ в запись terminfo(5) tmux).
Это эквивалентно возможности RGB terminfo(5).
Ms Сохраняет текущий буфер в буфер обмена хост-терминала. См. опцию set-clipboard выше и страницу руководства xterm(1).
XT Это существующая расширенная возможность, которую tmux использует для обозначения того, что терминал поддерживает последовательности установки заголовка xterm(1) и для автоматической установки некоторых из вышеперечисленных возможностей.
РЕЖИМ УПРАВЛЕНИЯ
tmux предлагает текстовый интерфейс, называемый режимом управления. Это позволяет приложениям взаимодействовать с tmux, используя простой текстовый протокол.
В режиме управления клиент отправляет команды tmux или последовательности команд, завершающиеся символами новой строки, в стандартный ввод. Каждая команда создает один блок вывода в стандартном выводе. Блок вывода состоит из строки %begin, за которой следует вывод (который может быть пустым). Блок вывода заканчивается строкой %end или %error. Строки %begin и соответствующая строка %end или %error имеют три аргумента: целое число времени (в секундах от эпохи), номер команды и флаги (в настоящее время не используются). Например:
%begin 1363006971 2 1
0 ksh* (1 панель) [80x24] [layout b25f,80x24,0,0,2] @2 (активна)
%end 1363006971 2 1
Команда refresh-client -C может использоваться для установки размера клиента в управляющем режиме.
В управляющем режиме tmux выводит уведомления. Уведомление никогда не происходит внутри блока вывода.
Определены следующие уведомления:
%client-detached client
Клиент отключен.
%client-session-changed client session-id name
Клиент теперь подключен к сессии с ID session-id, которая названа name.
%config-error error
Произошла ошибка в файле конфигурации.
%continue pane-id
Панель продолжена после приостановки (если установлен флаг pause-after, см. refresh-client -A).
%exit [reason]
Клиент tmux завершает работу немедленно, либо потому, что он не подключен ни к одной сессии, либо произошла ошибка. Если присутствует, reason описывает причину завершения работы клиента.
%extended-output pane-id age ... : value
Новая форма %output, отправляемая, когда установлен флаг pause-after. age — это время в миллисекундах, в течение которого tmux буферизировал вывод, прежде чем он был отправлен. Все последующие аргументы до одинарного двоеточия : предназначены для будущего использования и должны игнорироваться.
%layout-change window-id window-layout window-visible-layout window-flags
Макет окна с ID window-id изменился. Новый макет — window-layout. Видимый макет окна — window-visible-layout, а флаги окна — window-flags.
%message message
Сообщение, отправленное с помощью команды display-message.
%output pane-id value
Панель окна сгенерировала вывод. value экранирует непечатаемые символы и обратную косую черту как \xxx в восьмеричной системе счисления.
%pane-mode-changed pane-id
Режим панели с ID pane-id изменился.
%paste-buffer-changed name
Имя буфера вставки было изменено.
%paste-buffer-deleted name
Имя буфера вставки было удалено.
%pause pane-id
Панель была приостановлена (если установлен флаг pause-after).
%session-changed session-id name
Клиент теперь подключен к сессии с ID session-id, которая названа name.
%session-renamed name
Текущая сессия была переименована в name.
%session-window-changed session-id window-id
Сессия с ID session-id изменила свое активное окно на окно с ID window-id.
%sessions-changed
Сессия была создана или уничтожена.
%subscription-changed name session-id window-id window-index pane-id ... : value
Значение формата, связанного с подпиской name, изменилось на value. См. refresh-client -B. Любые аргументы после pane-id до одинарного двоеточия : предназначены для будущего использования и должны игнорироваться.
%unlinked-window-add window-id
Окно с ID window-id было создано, но не связано с текущей сессией.
%unlinked-window-close window-id
Окно с ID window-id, которое не связано с текущей сессией, было закрыто.
%unlinked-window-renamed window-id
Окно с идентификатором window-id, которое не связано с текущей сессией, было переименовано.
%window-add window-id
Окно с идентификатором window-id было связано с текущей сессией.
%window-close window-id
Окно с идентификатором window-id было закрыто.
%window-pane-changed window-id pane-id
Активная панель в окне с идентификатором window-id была изменена на панель с идентификатором pane-id.
%window-renamed window-id name
Окно с идентификатором window-id было переименовано в name.
ОКРУЖАЮЩАЯ СРЕДА
При запуске tmux проверяет следующие переменные окружения:
EDITOR Если команда, указанная в этой переменной, содержит строку ‘vi’ и переменная VISUAL не установлена,
используйте vi-подобные привязки клавиш. Отменяется опциями mode-keys и status-keys.
HOME Домашний каталог пользователя. Если не установлена, обращается к базе данных passwd(5).
LC_CTYPE Локаль кодировки символов(1). Она используется для двух отдельных целей. Для вывода на
терминал используется UTF-8, если указана опция -u или если LC_CTYPE содержит "UTF-8"
или "UTF8". В противном случае записываются только символы ASCII, а символы, не входящие в ASCII,
заменяются символами подчеркивания ('_'). Для ввода tmux всегда работает с локалью UTF-8. Если
en_US.UTF-8 предоставлена операционной системой, она используется, и LC_CTYPE игнорируется для
ввода. В противном случае LC_CTYPE сообщает tmux, как называется локаль UTF-8 в текущей
системе. Если локаль, указанная в LC_CTYPE, недоступна или не является локалью UTF-8,
tmux завершается с сообщением об ошибке.
LC_TIME Локаль формата даты и времени(1). Она используется для локально-зависимых спецификаторов формата strftime(3).
PWD Текущий рабочий каталог, который будет установлен в глобальной среде. Это может быть полезно,
если он содержит символические ссылки. Если значение переменной не соответствует текущему
рабочему каталогу, переменная игнорируется, и вместо этого используется результат getcwd(3).
SHELL Абсолютный путь к оболочке по умолчанию для новых окон. См. опцию default-shell
для получения дополнительной информации.
TMUX_TMPDIR
Родительский каталог каталога, содержащего серверные сокеты. См. опцию -L для получения дополнительной информации.
VISUAL Если команда, указанная в этой переменной, содержит строку ‘vi’, используйте vi-подобные привязки клавиш. Отменяется опциями mode-keys и status-keys.
ФАЙЛЫ
~/.tmux.conf
$XDG_CONFIG_HOME/tmux/tmux.conf
~/.config/tmux/tmux.conf
Файл конфигурации tmux по умолчанию. /etc/tmux.conf Конфигурационный файл для всей системы.
ПРИМЕРЫ
Чтобы создать новую сессию tmux, выполняющую vi(1):
$ tmux new-session vi
У большинства команд есть более короткая форма, известная как псевдоним. Для new-session это new:
$ tmux new vi
Кроме того, принимается кратчайшая однозначная форма команды. Если есть несколько опций, они перечислены:
$ tmux n
неоднозначная команда: n, может быть: new-session, new-window, next-window
В активной сессии новое окно можно создать, набрав ‘C-b c’ (Ctrl, за которой следует клавиша ‘b’, а затем клавиша ‘c’).
В Windows можно перемещаться с помощью: «C-b 0» (для выбора окна 0), «C-b 1» (для выбора окна 1) и так далее; «C-b n» для выбора следующего окна; и «C-b p» для выбора предыдущего окна.
Сеанс можно отсоединить с помощью «C-b d» (или внешним событием, таким как ssh(1), например, разрывом соединения) и повторно подключить с помощью:
$ tmux attach-session
При нажатии «C-b ?» отображается список текущих привязок клавиш в текущем окне; для навигации по списку можно использовать клавиши «вверх» и «вниз» или «q» для выхода из него.
Команды, которые должны выполняться при запуске сервера tmux, можно поместить в файл конфигурации \~/.tmux.conf. Вот несколько распространенных примеров:
Изменение ключа префикса по умолчанию:
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
Отключение строки состояния или изменение ее цвета:
set-option -g status off
set-option -g status-style bg=blue
Установка других параметров, таких как команда по умолчанию или блокировка после 30 минут бездействия:
set-option -g default-command "exec /bin/ksh"
set-option -g lock-after-time 1800
Создание новых привязок клавиш:
bind-key b set-option status
bind-key / command-prompt "split-window 'exec man %%'"
bind-key S command-prompt "new-window -n %1 'ssh %1'"
ССЫЛКИ
pty(4)
АВТОРЫ
Nicholas Marriott <_>