tmux — это мощный терминальный мультиплексор, который позволяет запускать несколько терминальных сессий в одном окне. В этом руководстве я подробно опишу мои настройки tmux, которые помогут вам настроить и оптимизировать вашу рабочую среду.
Основные настройки
set -g default-terminal "screen-256color"
Эта настройка задает тип терминала по умолчанию как "screen-256color". Это необходимо для поддержки 256 цветов в tmux, что делает отображение более красочным и наглядным.
Настройка плагинов
set -g @plugin 'tmux-plugins/tpm'
tmux Plugin Manager (TPM) — это менеджер плагинов для tmux, который упрощает установку и управление плагинами. С помощью TPM вы можете легко добавлять, удалять и обновлять плагины.
set -g @plugin 'tmux-plugins/tmux-sensible'
Плагин tmux-sensible добавляет набор оптимальных настроек по умолчанию для tmux, которые улучшают пользовательский опыт и делают работу с tmux более удобной.
set -g @plugin 'tmux-plugins/tmux-resurrect'
tmux-resurrect сохраняет и восстанавливает состояние tmux-сессий, включая окна, панели, а также запущенные процессы. Это очень полезно для восстановления сессии после перезагрузки системы или закрытия терминала.
set -g @plugin 'tmux-plugins/tmux-continuum'
tmux-continuum автоматически сохраняет состояние ваших tmux-сессий и может автоматически восстанавливать их при запуске tmux. Это дополнение к tmux-resurrect, которое обеспечивает непрерывность вашей работы.
set -g @plugin 'tmux-plugins/tmux-yank'
tmux-yank позволяет копировать текст из tmux в системный буфер обмена с помощью сочетаний клавиш. Это упрощает обмен текстом между tmux и другими приложениями.
set -g @plugin 'tmux-plugins/tmux-sidebar'
tmux-sidebar добавляет боковую панель с дополнительной информацией, такой как дерево каталогов или список окон, что делает навигацию по проекту более удобной.
set -g @plugin 'tmux-plugins/tmux-open'
tmux-open позволяет открывать файлы и URL-адреса напрямую из tmux. Это упрощает доступ к файлам и веб-ресурсам без выхода из tmux.
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
tmux-better-mouse-mode улучшает поддержку мыши в tmux, позволяя прокручивать панели, выбирать текст и переключаться между окнами и панелями с помощью мыши.
set -g @plugin 'kiyoon/treemux'
treemux добавляет поддержку навигации по файловой системе с помощью дерева каталогов, что упрощает работу с проектами, содержащими множество файлов и директорий.
set -g @plugin 'dracula/tmux'
dracula/tmux — это тема для tmux, которая придает вашему терминалу стильный и современный вид. Она включает в себя настраиваемые цветовые схемы и элементы интерфейса.
Дополнительные настройки плагинов
set -g @dracula-plugins "cpu-usage ram-usage"
Эта настройка добавляет виджеты для мониторинга использования процессора и оперативной памяти в статус-баре tmux.
set -g @dracula-cpu-usage-colors "pink dark_gray"
Настройка цветов для виджета использования процессора. Вы можете выбрать любые цвета из палитры.
set -g @dracula-show-powerline true
Включение отображения стиля Powerline в статус-баре tmux, что делает его более информативным и красивым.
set -g @dracula-show-flags true
Включение отображения флагов состояния в статус-баре.
set -g @dracula-show-left-icon session
Выбор иконки, отображаемой в левой части статус-бара. Можно выбрать из: hostname, session, shortname, smiley, window или любой символ.
Настройка клавиш и панелей
bind s choose-tree -sZ -O name
Привязка клавиши s
для отображения дерева сеансов и окон, отсортированных по имени.
set -g base-index 1
Установка базового индекса для окон на 1 (по умолчанию 0).
setw -g pane-base-index 1
Установка базового индекса для панелей на 1 (по умолчанию 0).
set -g mouse on
Включение поддержки мыши в tmux для прокрутки, выбора текста и переключения между окнами и панелями.
set -g history-limit 5000
Установка лимита истории прокрутки на 5000 строк, что позволяет просматривать большее количество ранее введенных команд.
set-option -g status-keys vi
Использование клавиш vi для навигации в статус-баре tmux.
set-option -g mode-keys vi
Использование клавиш vi для навигации в режимах копирования и выбора текста в tmux.
set -sg escape-time 0
Установка времени ожидания клавиши escape на 0 для более быстрого переключения режимов.
unbind C-b
Отмена привязки клавиши C-b
(Control + b) как префиксной клавиши.
set -g prefix C-a
Установка префиксной клавиши на C-a
(Control + a).
bind C-a send-prefix
Привязка клавиши C-a
для отправки префиксной команды.
bind -n M-Left select-pane -L
Привязка клавиши Alt + Left
для переключения на левую панель.
bind -n M-Right select-pane -R
Привязка клавиши Alt + Right
для переключения на правую панель.
bind -n M-Up select-pane -U
Привязка клавиши Alt + Up
для переключения на верхнюю панель.
bind -n M-Down select-pane -D
Привязка клавиши Alt + Down
для переключения на нижнюю панель.
bind | split-window -h
Привязка клавиши |
для горизонтального разделения окна.
bind - split-window -v
Привязка клавиши -
для вертикального разделения окна.
bind-key -T copy-mode-vi 'v' send -X begin-selection
Привязка клавиши v
для начала выделения текста в режиме копирования.
bind-key -T copy-mode-vi 'y' send -X copy-selection
Привязка клавиши y
для копирования выделенного текста в режиме копирования.
bind-key C-c run-shell "tmux new-window; tmux split-window -h; tmux split-window -v"
Привязка клавиши C-c
для создания нового окна и разделения его на три панели.
Дополнительные настройки
set -g @sidebar-tree 'e'
Настройка боковой панели для отображения дерева каталогов, запускаемой клавишей e
.
set -g status-interval 5
Установка интервала обновления статуса на 5 секунд.
set -g status-justify left
Выравнивание статуса по левому краю.
set -g status-left-length 20
Установка длины левого статуса на 20 символов.
set -g status-right-length 50
Установка длины правого статуса на 50 символов.
set -g @resurrect-capture-pane-contents 'on'
Включение захвата содержимого панелей для восстановления сессий.
set -g @resurrect-processes 'bash|ssh|zsh'
Указание процессов, которые будут сохранены и восстановлены (bash, ssh, zsh).
set -g @continuum-restore 'on'
Включение автоматического восстановления сессий при запуске tmux.
setw -g automatic-rename on
Включение автоматического переименования окон на основе выполняемых в них команд.
Дополнительные команды
bind g display-popup -d '#{pane_current_path}' -w80% -h80% -E lazygit
Привязка клавиши g
для отображения всплывающего окна с интерфейсом lazygit, размером 80% от текущего окна.
run '~/.tmux/plugins/tpm/tpm'
Запуск менеджера плагинов TPM при старте tmux.
Заключение
Настройка tmux с использованием описанных выше параметров и плагинов позволяет значительно улучшить удобство работы в терминале. Используя это руководство, вы можете настроить tmux под свои нужды и сделать работу в командной строке более эффективной.