Tmux

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

300px-Tmux5.png


ru man

Минималистическая шпаргалка

Очень хороший способ запустить tmux:

tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.

После этого вы попадаете в полноценную консоль.

Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)

В одной сессии может быть сколько угодно окошек:

Ctrl+b c — создать окошко;
Ctrl+b 0...9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).

В одном окошке может быть много панелей:

Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b " — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).

Недостаток — непривычным становится скроллинг:

Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования». 


Конфиг №1

unbind C-b # Отключим bind key по умолчанию
set -g prefix C-q # Новый bind key - Ctrl-z
bind-key -n C-n next # Следующий таб
bind-key -n C-p prev # Предыдущий таб
set -g base-index 1 # Начинать отсчёт окон с 1 а не с 0
  
# Переход на окно по F1-F10
bind-key -n F1 select-window -t 1
bind-key -n F2 select-window -t 2
bind-key -n F3 select-window -t 3
bind-key -n F4 select-window -t 4
bind-key -n F5 select-window -t 5
bind-key -n F6 select-window -t 6
bind-key -n F7 select-window -t 7
bind-key -n F8 select-window -t 8
bind-key -n F9 select-window -t 9
bind-key -n F10 select-window -t 0
  
unbind % # Выключаем клавишу % для горизонтального разбиения окна
bind H split-window -h # Назначаем клавишу H
unbind '"' # Выключаем клавишу " для вертикального разбиения окна
bind V split-window -v # Назначаем клавишу V

Конфиг №2

set-window-option -g mode-keys vi
set-option -g status-keys vi
set-window-option -g utf8 on
set-window-option -g mode-mouse off
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
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
set -g base-index 1
set-option -g status-utf8 on
set-option -g status-justify left
set-option -g status-bg black
set-option -g status-fg cyan
set-option -g status-interval 5
set-option -g status-right-length 30
set-option -g status-right '#[fg=magenta]» #[fg=blue,bold]#T#[default]'
#set-option -g status-left '#[fg=cyan]»» #[fg=blue,bold]###S #[fg=magenta]%R %m-%d#(acpi | cut -d ',' -f 2)#[default]'
#set-option -g status-left '#[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 colour154
set-window-option -g window-status-fg colour243
set-window-option -g clock-mode-colour cyan
set-window-option -g clock-mode-style 24
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -s escape-time 1
set -g default-terminal «screen-256color»
set -g prefix `
bind ` send-prefix
bind-key ` last-window
unbind %
unbind '"'
unbind x
unbind C-o
unbind k
unbind j
unbind h
unbind l
bind-key H split-window -h
bind-key V split-window -v
bind-key a send-keys `
bind-key X kill-pane
bind-key K confirm-before kill-window
bind-key N rotate-window -U
bind-key P rotate-window -D
bind-key j select-pane -D
bind-key k select-pane -U
bind-key h select-pane -L
bind-key l select-pane -R
bind-key F swap-pane -U
bind-key D swap-pane -D