tmux

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

Other languages:
English • ‎español • ‎italiano • ‎日本語 • ‎한국어 • ‎русский • ‎中文(中国大陆)‎
Resources

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

Установка

USE-флаги

USE flags for app-misc/tmux Terminal multiplexer

selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur global
utempter Include libutempter support local
vim-syntax Pulls in related vim syntax scripts global

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.

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

Ссылки