5 лучших плагинов для повышения продуктивности в Tmux

Изображение человека, работающего за компьютером.

Tmux — это отличный мультиплексор терминала, который может консолидировать и управлять различными сеансами консоли. Хотя его основные функции охватывают большинство случаев использования, у него также есть фреймворк плагинов, который позволяет адаптировать программу под ваши нужды. В этой статье я расскажу о некоторых из лучших плагинов для Tmux, которые могут помочь оптимизировать ваш рабочий процесс в терминале.

1. tmux-menus

Если вы новичок в Tmux, изучение каждой комбинации клавиш может быть сложным и пугающим. С его неинтуитивными сочетаниями клавиш легко забыть комбинации для менее известных функций Tmux, таких как режим копирования и маркировка панелей.

Терминал, показывающий многопанельную настройку Tmux с отмеченной панелью и панелью в режиме копирования.

Tmux-menus — это простой плагин, который решает эту проблему. Он предоставляет чистое и интуитивно понятное меню на основе TUI, к которому вы можете получить доступ, нажав Ctrl + \ (обратный слэш). Внутри он содержит каждую функцию Tmux, позволяя вам визуально выбирать то, что вам нужно, вместо того чтобы запоминать их сочетания клавиш.

Терминал, показывающий работу плагина tmux-menus.

Помимо того, что Tmux становится доступным, одно из качеств, которое мне нравится в Tmux-menus, — это настраиваемость. Каждый элемент меню внутри плагина — это просто ссылка на shell-скрипт. Это означает, что с небольшими знаниями Bash вы можете легко включить пользовательские функции в Tmux-menus.

Терминал, показывающий пользовательское меню конфигурации

2. tmux-resurrect

Одной из самых больших проблем Tmux является то, что это программа без состояния. Это означает, что она не запоминает ничего о сеансе, когда вы его закрываете. Лично я нахожу это разочаровывающим, так как это заставляет меня заново настраивать свой макет Tmux каждый раз, когда я перезагружаю компьютер.

Терминал, показывающий, что сеанс Tmux был внезапно отключен.

Tmux-resurrect — это инструмент, который может помочь решить эту проблему. Это простой плагин, который сохраняет целые окружения Tmux, включая порядок окон и макет панелей. Он также хранит инкрементальные снимки ваших сеансов, что означает, что вы можете “вернуться назад во времени” и загрузить разные версии вашей настройки Tmux.

Терминал, показывающий внутренности макета Tmux.

Еще одна функция, которая мне нравится в Tmux-resurrect, заключается в том, что он может сохранять состояние работающей программы. Хотя реализация не идеальна, и функция охватывает лишь несколько приложений, плагин справляется с этим достаточно хорошо, чтобы сделать вашу настройку Tmux более плавной.

Терминал, показывающий процесс восстановления в tmux-resurrect, который включает восстановление состояния программы.

Полезно знать: интересуетесь, как Tmux-resurrect делает свою магию? Углубитесь в то, как Tmux управляет окнами и панелями в сеансе.

3. tmux-notify

Отслеживать фоновые программы может быть сложно, если вы управляете несколькими панелями и сеансами Tmux. На моем опыте это приводило к моментам, когда я забывал, что у меня запущена команда в фоновом режиме, и случайно закрывал Tmux.

Терминал, показывающий недавно закрытые сеансы Tmux.

Tmux-notify — это плагин, который отправляет уведомление, когда он обнаруживает завершенный процесс. Он работает, проверяя любую активную панель Tmux, которая только что перешла к приглашению Bash. Затем плагин отправляет сообщение libnotify, которое может быть либо визуальным терминальным сигналом, либо звуковым пингом.

Терминал, показывающий уведомление libnotify для запущенной задачи Tmux.

Хотя этот стиль уведомления подходит большинству пользователей, Tmux-notify также предлагает поддержку для Telegram-ботов, уведомлений Pushover и пользовательских команд. Это делает возможным интеграцию Tmux-notify в практически любой рабочий процесс, что делает его привлекательным вариантом для тех, кто хочет настроить свою терминальную настройку.

Кстати: вы новичок в командной строке? Начните свое путешествие с правильной ноги, ознакомившись с нашим руководством для начинающих по использованию терминала Linux.

4. tmux-jump

Навигация по буферу, вероятно, является одной из самых неудобных частей Tmux. Мультиплексор не предоставляет встроенных сочетаний клавиш для перемещения вне режима копирования и фокуса окна. Как человек, который использует Tmux для повседневных задач продуктивности, я нахожу эту странную особенность как утомительной, так и разочаровывающей, особенно для долгих сеансов терминала.

Tmux-jump решает эту проблему, делая навигацию по панелям Tmux простой и интуитивной. Вдохновленный Vimium, он использует подсказки по ключевым словам для создания “точек прыжка” внутри ваших окон Tmux. Это позволяет вам быстро перемещаться внутри Tmux, не полагаясь на его сложные сочетания клавиш.

Терминал, показывающий подсказки по ключевым словам в Tmux-jump.

Tmux-jump особенно хорошо работает, когда вы комбинируете его с плагинами, такими как EasyMotion для Vim. В моем случае эта настройка создает последовательный рабочий процесс, где терминал и текстовый редактор следуют одним и тем же сочетаниям клавиш для перемещения. Это делает их поведение похожим на IDE, что трудно воспроизвести для полнофункциональных программ, таких как Emacs.

Терминал, показывающий работу подсказок по ключевым словам в многопанельной настройке Tmux.

5. treemux

Treemux — это мощный плагин, который бесшовно интегрирует файловый браузер в стиле дерева Neovim с Tmux. Он может навигировать по папкам, открывать файлы и даже отображать текущий рабочий каталог. Это делает его незаменимым плагином, если вы хотите создать IDE на основе Neovim внутри Tmux.

Терминал, показывающий работу плагина Treemux на одной панели Tmux.

Разработчик Treemux также спроектировал плагин так, чтобы он был как можно менее навязчивым. Он не отображается по умолчанию и регулирует свой размер в зависимости от панели, к которой он прикреплен. Таким образом, Treemux — отличный плагин, если вы предпочитаете “дзен-подобный” терминал с минимальными отвлечениями.

Терминал, показывающий работу плагина Treemux на отдельных панелях.

Наконец, у Treemux есть несколько расширений для Neovim, которые расширяют стандартный набор функций плагина. Tmuxsend.vim добавляет поддержку отправки полного пути из Treemux в Tmux, что делает ссылки на файлы быстрыми и простыми. В то время как nvim-tree-remote.nvim позволяет вам открывать файлы в Treemux, дважды щелкнув по ним мышью.

В конце концов, Tmux — это всего лишь программа-мультиплексор, и эти плагины только расширят то, что она в настоящее время делает. Если вы хотите расширить возможности терминала, ознакомьтесь с тем, как мой коллега улучшил свой терминал с помощью нескольких отличных приложений.

Кредит изображения: Grok через x.ai. Все изменения и скриншоты сделаны Рамсесом Редом.