Статьи

10 убийц Tmux Советы

tmux3

В этой статье я приведу вам десять моих любимых советов по tmux . Для тех, кто не знаком с tmux , редактор SitePoint Ruby Гленн Гудрич написал отличный обзор основ.

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

Совет № 1: Всегда включайте сеанс tmux

Попасть в новую привычку — это всегда тяжелая битва. Так же, как пытаясь заставить себя использовать клавиши hjkl в vim , отключив клавиши со стрелками, мне нужно было найти способ заставить себя постоянно использовать tmux . Это полезно, когда вы занимаетесь программированием и забыли, что сначала вы должны использовать tmux -ed.

Приведенный выше пример работает с iTerm2 на Mac OSX. Не должно быть трудно искать эквиваленты Linux. Основная идея — всегда запускать tmux attach -t base || tmux new -s base tmux attach -t base || tmux new -s base при запуске программы терминала.

Строка выше пытается подключиться к ранее созданному сеансу, называемому base , или создает новый (также называемый base ), если он не существует. Вы можете переименовать base на что угодно, это не специальное ключевое слово. С этим заклинанием, когда вы запускаете терминал, вы автоматически подключаетесь к предыдущему сеансу tmux .

Совет № 2: Синхронизация нескольких панелей

Видео выше показывает четыре панели, загруженные REPL на четырех разных языках. Двигаясь по часовой стрелке, у нас есть Haskell, Ruby, Elixir и Python. Что дает нам setw synchronise-panes , так это то, что он одновременно отправляет ввод с клавиатуры с одной панели на остальные панели. (В этом случае мы также можем увидеть, что Elixir REPL намного лучше из-за цветного вывода.)

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

Совет № 3: Обновление tmux

Я склонен к очистке терминала с помощью Command + L К сожалению, в tmux это просто портит весь сеанс. Чтобы проиллюстрировать это, выше показан мой типичный опыт работы с tmux : я с удовольствием программирую, когда каким-то образом мои толстые пальцы нажимают Command+k и весь мой сеанс tmux запутывается, сводя меня с ума:

К счастью, легко исправить привязку prefix-r для перезагрузки файла конфигурации tmux , и все снова хорошо. В ~/.tmux.conf добавьте следующую запись:

bind-key r source-file ~/.tmux.conf

Это говорит tmux снова tmux конфигурацию, по существу перезагружая tmux .

Совет № 4: Менеджер плагинов tmux

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

После того, как вы установите плагин, достаточно выбрать tmux.conf плагин и вставить запись в tmux.conf .

Если вы используете Vundle или Pathogen для vim , процесс такой же. Вы объявляете любые плагины, которые хотите, предоставляя имя пользователя и tmux.conf GitHub, сохраняете tmux.conf , затем tmux.conf prefix + I чтобы установить плагин:

Следующие два совета охватывают два интересных плагина, которые можно установить с помощью менеджера плагинов tmux .

Совет № 5: Воскрешение tmux

tmux-resurrect — это инструмент для сохранения среды tmux перезапуске системы. Почему это полезно? Когда вы перезапустите tmux , весь сеанс tmux . tmux-resurrect исправляет это. Еще одна очень приятная особенность tmux-resurrect — возможность восстанавливать сессии vim !

В следующем видео у меня есть сеанс vim в левой панели rails console и rails server , соответственно, справа.

Чтобы tmux-resurrect сохранил сеанс vim , установите vim-obsession Тима Попа . vim-obssesion облегчает запись сессии vim . Я не играл с этим много, но позвольте мне показать вам весь процесс:

Прежде всего, мы должны сказать vim-obsession чтобы отслеживать сессию. У меня также htop работает в другом окне.

Чтобы сохранить весь сеанс tmux , введите prefix + Control + s . Затем, если что-то убивает сервер tmux , что происходит, когда батарея разряжается или кто-то спотыкается о провод, и питание отключается. С tmux-resurrect потеря сеанса tmux не является проблемой. Чтобы восстановить сеанс, вам нужно снова запустить tmux , и на этот раз нажать prefix + Control + r .

Тем не менее, я уже здесь, некоторые люди думают: «Разве prefix + Control + s + r вручную не доставляет хлопот! У кого есть время, чтобы запомнить все это? »Введите совет № 6.

Совет № 6: tmux-continuum

tmux-континуум постоянно сохраняет вашу среду tmux через равные промежутки времени и автоматически восстанавливает ее при запуске tmux .

Совет № 7: Масштабирование tmux

Zoom был представлен в tmux 1.8. Масштабирование tmux очень полезно, когда вы хотите посмотреть на ошибки теста или проверить журналы. Чтобы увеличить масштаб панели, нажмите prefix + z и используйте ту же комбинацию для уменьшения.

Совет № 8: плавно перемещайтесь между vim и tmux

Иногда бывает сложно понять, находитесь ли вы в разделении vim или на панели tmux . Навигация между обоими также является проблемой. Так продолжалось до тех пор, пока не появился vim-tmux-navigator .

Здесь у нас есть сеанс tmux с тремя панелями. Левая половина состоит из двух разделений vim , а правая часть содержит две панели tmux .

С помощью vim-tmux-navigator я могу перемещаться по hjkl vim и панелям tmux используя Control + hjkl :

Совет № 9: vim + tmux + Ruby Specs

vim и tmux создают tmux комбинацию для запуска тестов Ruby. Чтобы это работало, вам нужно установить три плагина vim :

Как только вы установите эти плагины, давайте посмотрим, как они улучшают наш рабочий процесс:

У нас есть спецификации для модели Micropost . Я настроил to runs all the specs found in this file. However, when I hit to runs all the specs found in this file. However, when I hit , it runs only the specs under the cursor. Extremely handy! , it runs only the specs under the cursor. Extremely handy!

Совет № 10: tmuxinator

В дополнение к удивительному имени, tmuxinator является отличным гемом Ruby, который помогает вам легко создавать сессии tmux . tmuxinator особенно полезен, когда у вас есть разные проекты, требующие разных макетов панелей / окон.

Спасибо за прочтение!

Надеюсь, вам понравилась эта статья, и вы узнали что-то новое. Есть ли у вас другие советы, чтобы поделиться? Распространите немного любви tmux в комментариях ниже!

Ресурсы