Tmux (Русский)
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).
Чтобы управлять несколькими сеансами, подключайте раздельные файлы сеансов в конфигурационном файле:
# инициализация сеансов bind F source-file ~/.tmux/foo bind B source-file ~/.tmux/bar
Проблемы с прокруткой
Если у вас проблемы с прокруткой клавишами Shift-PageUp/Shift-PageDown в терминале, попробуйте следующее:
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Дополнительные источники
- Ветка про Tmux на форумах Arch Linux (англ.)
- GNU Screen
- Tmux tutorial from OpenBSD FAQ (англ.)
- Tmux/Screen cheat sheet (англ.)
- Tmux tutorial (англ.)