Tmux (Русский)

From ArchWiki
Jump to: navigation, search

Tmux — терминальный мультиплексор берущий своё начало из мира BSD. Он позволяет создавать несколько терминалов (или окон), каждый из которых выполняет отдельную программу, а так же управлять этими терминалами на одном экране. tmux может быть отвязан от экрана и продолжать свою работу в фоновом режиме, а позже — привязан вновь. Он использует библиотеку ncurses.

Во многом, он похож на программу screen, но имеет некоторые отличия. (Кто сказал улучшения?) За более подробной информацией обращайтесь на официальный вебсайт.


Contents

Установка

# pacman -S tmux

Настройка

Конфигурационные файлы размещены в директории /usr/share/tmux/. По умолчанию, клавишами перехода в режим управления являются C-b (где C- — клавиша "Ctrl").

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

$ cp /usr/share/tmux/screen-keys.conf ~/.tmux.conf

Для управления настройками в рамках всей системы, поместите tmux.conf в директорию /etc/. Более подробная информация доступна в справочном материале по tmux:

$ man tmux

Простой конфигупационный файл для примера:

# клавиши перехода (как в screen)
set -g prefix C-a
bind C-a send-prefix

# основные настройки
set-window-option -g mode-keys vi # vi key
set-option -g status-keys vi
set-window-option -g utf8 on # поддержка utf-8
set-window-option -g mode-mouse off # отключить "мышь"

# режим копирования на клавише "Esc"
unbind [
bind Escape copy-mode

# переместить буфер обмена tmux в буфер обмена X
bind-key C-y save-buffer /tmp/tmux-buffer \; run-shell "cat /tmp/tmux-buffer | xclip"

# разделение на панели и перемещение
set-option -g mouse-select-pane off
unbind %
bind + split-window -h # horizontal split
unbind '"'
bind _ split-window -v # vertical split
bind C-j previous-window
bind C-k next-window

# заголовок окна
set-option -g set-titles on
set-option -g set-titles-string '#S:#I.#P #W' # window number,program name,active (or not)
set-window-option -g automatic-rename on # auto name

# сообщения
#set-window-option -g mode-bg magenta
#set-window-option -g mode-fg black
#set-option -g message-bg magenta
#set-option -g message-fg black

# отключить визуальную активность
set -g visual-activity off
set -g visual-bell off

# следующее окно
bind-key -n C-right next

# предыдущее окно
bind-key -n C-left prev

# панель состояния
set-option -g status-utf8 on
set-option -g status-justify right
set-option -g status-bg black
set-option -g status-fg cyan
set-option -g status-interval 5
set-option -g status-left-length 30
set-option -g status-left '#[fg=magenta]» #[fg=blue,bold]#T#[default]'
set-option -g status-right '#[fg=cyan]»» #[fg=blue,bold]###S #[fg=magenta]%R %m-%d#(acpi | cut -d ',' -f 2)#[default]'
set-option -g visual-activity on
set-window-option -g monitor-activity on
set-window-option -g window-status-current-fg white

# часы
set-window-option -g clock-mode-colour cyan
set-window-option -g clock-mode-style 24

Чтобы изменить размер панели используйте следующее сочетание клавиш:

ctrl+a, отпустите a (но продолжайте удерживать ctrl) и нажмите клавишу вправо/влево/вверх/вниз

Чтобы поменять панели местами:

ctrl+a, отпустите a (но продолжайте удерживать ctrl) и нажмите o

Чтобы перейти по URL, который появляется в tmux (предполагается, что urlview установлен и настроен):

bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; run-shell "$TERMINAL -e 'cat /tmp/tmux-buffer | urlview'"

Основное управление окнами с настройками по умолчанию

Примечание Вы можете изменить сочетание клавиш Ctrl-b на Ctrl-a создав файо ~/.tmux.conf и записав в него следующее:

set -g prefix ^a

Запустите tmux командой tmux. Появится окно терминала и панель состояния.

Ctrl-b c  создать новое окно 
Ctrl-b ,.  переименовать текущее окно — введите новое имя и нажмите Enter

Множество способов смены ококн:

Ctrl-b n (Перейти к следующему окну)
Ctrl-b p (Перейти к предыдущему окну)
Ctrl-b l (Перейти к ранее выбранному окну)
Ctrl-b w (Список всех окон / номеров окон)
Ctrl-b <номер окна> (Перейти к окну с определённым номером от 0 до 9)

Что делать, если у вас открыто более десяти окон? В tmux есть опция поиска по окнам:

Нажмите Ctrl-b f  и введите имя нужного окна

(так же можно использовать лишь часть имени окна для поиска).

Основное управление панелями с настройками по умолчанию

Ctrl-b %  (Разделить окно вертикально)
Ctrl-b :  “split-window” (Разделить окно горизонтально)
Ctrl-b o  (Перейти к следующей панели)
Ctrl-b q  (Показать номера панелей, наберите номер на клавиатуре, чтобы перейти к соответствующей панели)
Ctrl-b {  (Переместить текущую панель влево)
Ctrl-b }  (Переместить текущую панель вправо)

Инициализация сеансов

Можно настроить tmux таким образом, чтобы он запускался с предопределённым набором окон, добавив следующие команды в ваш .tmux.conf:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

Чтобы запустить сеанс с разделёнными окнами (панелями), добавьте команду splitw после neww, таким образом:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

откроет два окна, второе из которых будет называться foo/bar и будет разделено вертикально пополам с командой foo запущенной перед командой bar. Фокус будет передан второму окну(foo/bar), левой панели (foo).

Note: Нумерация сеансов, окон и панелей начинается с нуля, если не указан параметр base-index со значением 1 в .tmux.conf

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

# инициализация сеансов
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar

Проблемы с прокруткой

Если у вас проблемы с прокруткой клавишами Shift-PageUp/Shift-PageDown в терминале, попробуйте следующее:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Дополнительные источники