This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

tmux

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Tmux and the translation is 100% complete.
Resources

tmux (terminal multiplexer (терминальный мультиплексор)) программа позволяющая создать несколько терминалов (или окон), в каждом из которых можно запустить отдельно программу. tmux может быть отсоединен от экрана и продолжать работать в фоновом режиме, а затем снова быть соединенным.[1] Пользователи, знаокмые со Screen могут найти tmux хорошей ему альтернативой.

Установка

USE-флаги

USE flags for app-misc/tmux Terminal multiplexer

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
jemalloc Use dev-libs/jemalloc for memory management
selinux  !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sixel Enable sixel support
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
utempter Include libutempter support
vim-syntax Pulls in related vim syntax scripts

Emerge

Установите app-misc/tmux:

root #emerge --ask app-misc/tmux

Конфигурация

Стандартная установка tmux не устанавливает системный файл конфигурации (/etc/tmux.conf) или файл конфигурации для пользователя (~/.tmux.conf). Примеры файлов конфигурации находятся в каталоге /usr/share/doc/tmux-2.0/examples и могут быть скопированы как системные файлы конфигурации, так и как файлы конфигурации пользователя и отредактированы как необходимо с помощью текстового редактора.

Примеры в пакете

Чтобы увидеть список конфигурационных файлов, запустите следующую команду:

user $ls /usr/share/doc/tmux-2.0/examples
h-boetes.conf.bz2  n-marriott.conf.bz2  screen-keys.conf.bz2  t-williams.conf.bz2  vim-keys.conf.bz2

Затем используйте cp для перемещения одного из файлов либо в глобальную папку конфигурации (будет использоваться для всех пользователей), либо в домашнюю папку пользователя

Пример файла конфигурации

Пример файла конфигурации ~/.tmux.conf:

Файл ~/.tmux.conf
set -g default-terminal "screen-256color"   # Use 256 colors
set -g status-utf8 on                       # Enable utf-8
set -g history-limit 100000                 # Scrollback buffer number of lines
 
# Start window indexing at one instead of zero
set -g base-index 1
 
# Set the prefix key and some key bindings to match GNU Screen
set -g prefix C-a
bind-key C-a last-window
 
# Key bindings for horizontal and vertical panes
unbind %
bind | split-window -h
bind - split-window -v
 
# Enable window titles
#set -g set-titles on
 
# Window title string (uses statusbar variables)
set -g set-titles-string '#T'
 
# Status bar with load and time
set -g status-bg '#4e4e4e'
set -g status-fg '#ffffff'
set -g status-left ' '
set -g status-right '#[bg=#bbbbbb]#[fg=#000000]#(cut -d " " -f -3 /proc/loadavg) #[bg=#4e4e4e]#[fg=#ffffff]#(
date +" %H:%M ")'
set -g window-status-format '#I #W'
set -g window-status-current-format ' #I #W '
setw -g window-status-current-bg '#55ff55'
setw -g window-status-current-fg '#000000'
 
# Pane border colors
set -g pane-active-border-fg '#bbbbbb'
set -g pane-border-fg '#555555'
 
# Bind to reload config
bind r source-file ~/.tmux.conf

Расширения

Для tmux доступно некоторое количество плагинов. См. секции ниже:

tmux-mem-cpu-load

tmux-mem-cpu-load -- небольшая программа для мониторинга системной активности в статусной строке tmux. См. раздел tmux-mem-cpu-load для большей информации о процессе установки и настройки.

Tmux повторное использование

tmux-resurrect восстанавливает окружение tmux после перезагрузок системы. О процессе установки можно посмотреть в статье resurrect.

Использование

функциональные комбинации клавиш

tmux может управляться из присоединенного клиента посредством клавиатурных комбинаций системная кнопка с нажатой клавишей (Ctrl+b по умолчанию) за которой следует нажатие коммандной кнопки.

После нажатия Ctrl+B следующие клавиатурные комбинации могут быть использованы:

Общие комбинации

  • ? = Показать все клавиатурные комбинации.
  • d = Отсоеденить текущий клиент.
  • : = Перейти к командной строке tmux

Создание и управление окнами

  • c = Создать новое окно
  • n = Перейти к следующему окну.
  • p = Перейти к предыдущему окну.
  • l = Перейти к предыдущему выбранному окну.
  • 0-9 = Выбрать окна от 0 до 9.
  • ' = Перейти к выбору индекса окна. Потом необходимо ввести номер о название чтобы перейти к соответствующему окну.
  • , = Переименовать текущее окно.
  • w = Выбрать окно в интерактивном режиме.
  • :, then type list-windows enter = Display the list of windows.

Создание и управление панелями

  • " = Разделить текущую панель на две, верхную и нижнию.
  • % = Разделить текущую панель на две, левую и правую.
  • o = Выбрать следующую панель отображаемую в данном окне.
  • ; = Перейти в предыдущей активной панели
  • { = Поменять местами текущую панель с предыдущей
  • } = Поменять местами текущую панель со следующей панелью.
  • Ctrl+o = Rotate the panes in the current window forwards. * Alt+1 to Alt+5 = Arrange panes in one of the five preset layouts: even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled. * x = Kill the current pane. * ! = Break the current pane out of the window

Операции копирования, вставки и прокрутка

Доступные "горячие клавиши" зависят от того, выбран режим emacs (по умолчанию) или vi. Параметр mode-keys можно задать в .tmux.conf для режима vi.

  • [ = Войти в режим копирования, чтобы скопировать текст или просмотреть историю.
  • ] = Вставить последний скопированный в буфер текст.
  • # = Список всех буферов вставки.
  • - = Удалить последний скопированный текстовый буфер.

Управление сессией

Запуск сессии

После запуска tmux создает сокет сессии в /tmp/S-<UID>/<Session Name>

tmux может быть запущен следующей командой:

user $tmux

Или, чтобы указать имя сессии при старте, выполните:

user $tmux new-session -s portage

Информация о сессиях

Список tmux сессий для просмотра существующей информации о сессии:

user $tmux ls
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

При перечислении сессий, имя сессии должно отображаться как первый элемент в строке информации о сессии. Из выходных данных выше можно увидеть, что сессия была создана без имени, поэтому на сессию следует ссылаться как на 0.

Другой способ перечислить сессии - это ввести длинный аргумент list-sessions.

user $tmux list-sessions
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

Отобразится тот же результат, что и в предыдущей команде.

Переименование сессии

Простое использование tmux для запуска сеанса не предоставит сессию с удобным и понятным для человека именем.

Если имя сессии по умолчанию недостаточно описательно (0, как правило, не описывает много), то её можно переименовать. Предположим, что Ларри-корова запустил tmux без указания имени сессии при запуске. Он начинает работу над компиляцией новой версии Portage и хочет изменить имя сессии в соответствии с текущей задачей. Чтобы изменить имя сессии, он сначала возьмет на себя управление tmux, нажав "магическую клавишу": Ctrl+b, затем :, которая переместит фокус в строку управления tmux. По умолчанию она должна стать желтой. Там он может набрать:

:rename-session -t 0 portage

Где 0 действующее (по умолчанию) имя сессии, а portage - это новое имя сессии. Чтобы переименовать при отсоединении от сессии tmux:

user $tmux rename-session -t 0 portage

Продолжение сессии

После отсоединения сессии все активные терминалы остаются активными, а также команды, которые еще не завершились. Чтобы возобновить сессию используйте attach -t <session_name>.

user $tmux a -t portage

Или используйте длинный способ присоединения к существующей сессии:

user $tmux attach -t portage

Демон-подобная операция

Чтобы запустить команду в сессии tmux без присоединения к сессии (как демон), используйте new-session -d, а затем команду для выполнения в апострофах:

user $tmux new-session -d 'emerge -uDNvp @world'

Смотрите также

  • Screen — альтернатива tmux.

Внешние ресурсы

Ссылки