Настройка tmux на облачном сервере

Что такое tmux?

tmux – это терминальный мультиплексор. Данная утилита позволяет получить доступ к нескольким виртуальным терминалам в рамках одного экрана.

Инструкции по установке данного инструмента можно найти в отдельной статье.

Данное руководство сосредоточено на настройке tmux на облачном сервере, что достаточно сложно. Тем не менее, гибкость конфигурации tmux – еще один несомненный плюс данного инструмента.

Конфигурационный файл tmux

При запуске tmux ищет в домашнем каталоге пользователя файл по имени .tmux.conf. Если такой файл существует, tmux использует заданные в нем настройки.

Откройте файл .tmux.conf в домашнем каталоге при помощи любого удобного текстового редактора.

Строки, которые начинаются с символа #, tmux считает закомментированными.

Префиксы tmux

Префикс – это комбинация клавиш, которая предшествует команде в tmux; стандартным префиксом является Ctrl-b. Но эта комбинация не только неудобна для большинства клавиатур – она также спорит с некоторыми другими привязками (например, с vim).

Как правило, этот префикс заменяют на Ctrl-a. Эта более удобная комбинация заимствована из screen, утилиты, предшествующей tmux.

Чтобы включить этот префикс во всех сессиях tmux, внесите в файл tmux.conf следующую строку:

set-option -g prefix C-a

Поскольку префикс Ctrl-b в дальнейшем использоваться не будет, его нужно отключить.

unbind-key C-b

Обратите внимание: префикс Ctrl-a конфликтует с текстовым редактором Emacs.

Отправка префиксов во вложенные сессии tmux

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

Но в таком случае возникает небольшая трудность: выполнить команду в удаленной сессии невозможно, поскольку префикс перехватывается и обрабатывается локальной сессией tmux.

К счастью, tmux предоставляет встроенное решение данной проблемы – это send-prefix. Как правило, send-prefix работает в связке с Ctrl-b (то есть, комбинация клавиш совпадает со стандартным префиксом); таким образом, отправить префикс можно было бы при помощи комбинации Ctrl-b Ctrl-b. Но стандартный префикс Ctrl-b был изменен; следовательно, чтобы отправка выполнялась должным образом, нужно скомпоновать Ctrl-a и send-prefix:

bind-key C-a send-prefix

Учитывая структуру команды (повторение префикса), теперь для отправки префикса в удаленную сессию нужно использовать Ctrl-a Ctrl-a.

Нумерация окон

В отличие от панелей, окна используют нумерацию с отсчетом от нуля. Но клавиша 0 находится далеко от 1, что очень неудобно при работе.

Потому лучше изменить нумерацию окон, начав отсчет с 1. Чтобы tmux нумеровал окна, начиная с 1, используйте:

set -g base-index 1

Управляющие последовательности tmux

tmux поставляется с поддержкой управляющих последовательностей (escape sequence). Иногда это удобно, но при использовании некоторых программ (например, редактора vim) и даже самой оболочки эта функция мешает. К примеру, tmux ожидает полсекунды после использования последовательности для того, чтобы определить, к чему относится следующая клавиша (к функции или ве еще к последовательности).

Такое поведение tmux считается нежелательным, так что его нужно отключить:

set-option -sg escape-time 0

Общий вид

После внесения всех описанных в руководстве изменений файл .tmux.conf будет иметь такой вид:

# Ctrl-b is a bad prefix key, use Ctrl-a instead
set-option -g prefix C-a
unbind-key C-b
# Also assign Ctrl-a to send the prefix to a remote session
bind-key C-a send-prefix
# Windows should be numbered from 1 like panes
set -g base-index 1
# Disable tmux waiting for an escape sequence
set-option -sg escape-time 0

Tags: , , ,

Добавить комментарий