LINUX.ORG.RU

Вышел tmux 1.8

 


5

5

26 марта вышел терминальный мультиплексор tmux 1.8.

Данная утилита позволяет одновременно работать с несколькими приложениями в рамках одной удалённой сессии/открытого окна терминала, что незаменимо для системных администраторов и простых пользователей консольных приложений.

Основные изменения в новой версии:

  • добавлены бинды для смещения на полстраницы в copy-mode;
  • исправлен выбор сессии, которая в данный момент неактивна;
  • добавлены новая опции window-status-last-{attr,bg,fg} для указания предыдущего выбранного окна в строке состояния;
  • скроллинг в copy-mode не двигает курсор;
  • новый флаг '-t' для run-shell, выбирающий панель, в которую помещается вывод;
  • поддержка вставки щелчком по колёсику мыши;
  • новый флаг '-u' для choose-tree, запускает с развёрнутым деревом;
  • новый флаг '-T' для select-window, выбирает последнее окно в сессии;
  • команды типа choose-* работают вне клиента;
  • list-commands теперь выводит и сокращения;
  • панели при изменении фокуса могут передавать соответствующее событие приложениям внутри них;
  • новая команда copy-pipe для копирования и передачи буфера любой другой команде;
  • изменение размеров панелей изменяет положение текста в них;
  • множественные исправления ошибок, утечек памяти и документации в man-страницах.

Анонс в рассылке

>>> Больше подробностей

Ответ на: комментарий от anonymous

В отличие от screen, там вменяемая конфигурация из коробки.

Первое, что бросилось в глаза - не меняется заголовок окна.

andreyu ★★★★★ ()
Ответ на: комментарий от leave

да жуйте свой кактус..

В таком случае проще и быстрее ручками через ssh

не..

special-k ★★★ ()
Ответ на: комментарий от andreyu

Первое, что бросилось в глаза - не меняется заголовок окна.

Окна в tmux или окна терминала? Если второе, то я хотел отметить этот момент тоже, но забыл:

set -g set-titles on
set -g set-titles-string '#T'
set-tites-string у меня именно такой, потому что шелл в заголовке печатает первое слово из $TERM, а мне достаточно только отличать окно с мультиплексором от обычных.

anonymous ()
Ответ на: комментарий от anonymous

Если второе, то я хотел отметить этот момент тоже, но забыл:

То, что нужно. Супер!

andreyu ★★★★★ ()
Ответ на: комментарий от anonymous

Еще к вам вопрос, как можно одной командой заставить tmux присоединиться к существующей сессии или создать новую сессию, если она еще не создана.
В screen я это делал так: screeen -RD и если сессия не существовала, то создавалась новая.

andreyu ★★★★★ ()

Вот объясните мне. Я использую терминал юникс подобных с 2005 года, и до сих пор не пойму, зачем! Чем оно лучше alt f1...f8?

IPR ★★★★★ ()

Естественно кроме возобновления подключения к сессии.

IPR ★★★★★ ()
Ответ на: комментарий от Reset

Затем, что в tmux больше функционала, например, в нем можно делать всяческие split'ы.

Например, сплиты можно и в скрине делать. Всё?

Shtucer ()

1. Как в tmux сделать аналог screen /dev/ttyUSB0? 2. Как заставить изменить размер окна? Приезжаешь домой, делаешь аттач, а терминал сохраняет размеры окна на работе. 3. Есть ли в tmux такой же просто спосбо писать лог, как и в screen (c-a c-H)?

anonymous ()
Ответ на: комментарий от andreyu

tmux attach пытается подключиться к существующей сессии, либо создаёт новую, но только если создание сессии есть в конфиге, то есть где-то в конце файла можно просто добавить «new-session».

anonymous ()
Ответ на: комментарий от special-k

Да. Чем мне обновлять конфиги под две-три ноды - мне быстрее на них выполнить одинаковые команды, хоть в тмуксе, что через pssh, хоть руками и копипастом.

leave ★★★★★ ()
Ответ на: комментарий от anonymous

но только если создание сессии есть в конфиге, то есть где-то в конце файла можно просто добавить «new-session».

Супер, то что нужно. Спасибо огромное, господин Anonymous.

andreyu ★★★★★ ()

теминала

удалённой сессии/открытого окна теминала
окна теминала
теминала

li-ion ()

Годнота-то какая, ляпота!

gor ()
Ответ на: комментарий от Shtucer

сплиты можно и в скрине делать

Можно. Но не во всех дистрах) Поэтому считаем, что нельзя.

shahid ★★★★★ ()
Последнее исправление: shahid (всего исправлений: 1)

Прописал в конфиге:

# ctrl+left/right cycles thru windows
unbind C-right
unbind-key C-right
bind-key -n C-right next
unbind C-left
unbind-key C-left
bind-key -n C-left prev
очень удобно!

anonymous ()
Ответ на: комментарий от Dendy

Спасибо, когда работал удалённо, искал именно такой инструмент, но всё равно открывал тонну ssh-сессий.

clusterssh?

anonymous ()
Ответ на: комментарий от Dendy

Спасибо, когда работал удалённо, искал именно такой инструмент, но всё равно открывал тонну ssh-сессий.

Давно себе выработал правило: зашел по ssh - сразу запускаю screen или tmux

anonymous ()
Ответ на: комментарий от IPR

Вот объясните мне. Я использую терминал юникс подобных с 2005 года, и до сих пор не пойму, зачем! Чем оно лучше alt f1...f8?

Тем, в первую очередь, что работает и на удаленном терминале, а не только на консоли.

anonymous ()
Ответ на: комментарий от anonymous

The features that differentiate tmux from GNU Screen are:[2]

free-form splitting of the virtual console in order to provide simultaneous access to several virtual terminals within one session

menus for interactive selection of running sessions, windows or clients

built-in session locking (can be triggered either by emitting the corresponding command or after inactivity timeout)

window can be linked to an arbitrary number of sessions[3]

vi-like or Emacs command mode (with auto completion) for managing tmux[4]

lack of built-in serial and telnet clients (which are considered bloat for the terminal multiplexer)[2]

easier configuration[5][6]

azure ★★ ()
Ответ на: комментарий от anonymous

Тем, в первую очередь, что работает и на удаленном терминале, а не только на консоли.

Что мешает открыть десяток xterm, например?

IPR ★★★★★ ()
Ответ на: комментарий от anonymous

На тестовом сервере попробовал при запуске сессии заводить tmux вот так:

# TMUX
if which tmux 2>&1 >/dev/null; then
    #if not inside a tmux session, and if no session is started, start a new session
    test -z "$TMUX" && (tmux attach || tmux new-session)
fi
И знаете!? Очень нравится!!!

libbkmz ()
Ответ на: комментарий от anonymous

Давно себе выработал правило: зашел по ssh - сразу запускаю screen или tmux

Я это правило просто прописал в .zshrc.

Разумеется, это не будет работать на произвольном (== ненастроенном), возможно, чужом, сервере, но мне пока такое не требовалось.

ZyX ()

Несколько раз пытался пересесть на screen, но тот факт, что все комбинации клавиш обязаны начинаться со стандартного префикса портит всю малину: в итоге xfce4-terminal c кучей табов и необходимость ssh-иться/перечитывать переменные окружения при открытие новой вкладки, а screen — только если нужно запустить долгоиграющую задачу. Subj страдает той же проблемой.

Вопрос: существуют ли аналог, в котором можно назначать короткие (буква или цифра + ctrl/alt/win) hotkey'и?

ival ★★ ()
Ответ на: комментарий от ival

bindkey ^n screen bindkey ^x next bindkey ^z prev

^ это ctrl, очевидно

anonymous ()
Ответ на: комментарий от anonymous

не осилил, и три строки превратились в одну

anonymous ()

Когда в нём появится хардстатус?

like-all ★★ ()
Ответ на: комментарий от anonymous

bindkey ^n screen bindkey ^x next bindkey ^z prev

Сработало, спасибо

Что-то я плохо ман почитал:)

ival ★★ ()

хм. тоже что ли начать юзать?

xtraeft ★★☆☆ ()

А как заставить tmux создавать некоторые окна при создании сессии? Если просто прописать в конфиг «new-window ...» получаю при запуске ошибку «can't establish current session». Этот трюк возможен без запуска дополнительного bash-скрипта?

sbar ()

Отличная и очень полезная вещь.

methodx ()

старый добрый screen ни за что не променяю :>

guyvernk ()
Ответ на: комментарий от sbar

ну так сначала надо new-session, а потом уже new-window
можно запихать создание нужных окон в отдельный файл, а потом создавать сессию типа

tmux new-session -s"session-name" "tmux source <путь_до_файла_с_окнами>"

ii343hbka ★★★ ()

screen, во первых, довольно толстый, а во вторых, довольно глючно эмулирует терминал.

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

AVL2 ★★★★★ ()
Ответ на: комментарий от ii343hbka

ну так сначала надо new-session, а потом уже new-window

Спасибо

sbar ()
Ответ на: комментарий от ival

В screen ещё можно вот так, по-индусски:

bindkey "^[[6;5~" next
bindkey "^[[5;5~" prev
bindkey "^T" screen

shahid ★★★★★ ()
Ответ на: комментарий от shahid

Это не по-индусски, а штатная нотация.

anonymous ()
Ответ на: комментарий от Dendy

для открытия и ввода одно и того же текста в кучу консолей я раньше использовал CSSH,полезная штука.

Funny_sailor ()

так и не смог в дебиане настроить связку tmux+vim+mc я в vim использую цветовую схему xoria256. если пытаться играться с настройками tmux-bash-терминала, то либо в vim нет 256 цветов, то в midnight commander съезжают надписи или не работают shift и ещё чего

я использую неправославный roxterm. можно конечно пересесть на xterm или ещё чего, но я хочу нормальных трутайпных шрифтов больших в терминале. а не буковки со спичечную головку

короче пока не могу подсесть на tmux

anonymous ()
Ответ на: комментарий от anonymous

можно конечно пересесть на xterm или ещё чего, но я хочу нормальных трутайпных шрифтов больших в терминале.

С разморозкой, там сто лет как поддерживается xft. Только оно там медленное, лучше использовать urxvt — в нём тоже всё работает.

anonymous ()
Ответ на: комментарий от IPR

Вот объясните мне. Я использую терминал юникс подобных с 2005 года, и до сих пор не пойму, зачем! Чем оно лучше alt f1...f8?

Я использую с 2006. А с 2009 не пойму как можно ковырять удалённый сервер без screen. Попробуй подсоединиться к F2 на удалённой машине...

S_Paul ★★★★ ()
Последнее исправление: S_Paul (всего исправлений: 1)
Ответ на: комментарий от IPR

Естественно кроме возобновления подключения к сессии.

Вот именно, причём с кучей вкладок сразу.

S_Paul ★★★★ ()
Последнее исправление: S_Paul (всего исправлений: 1)

Классная штука!
Только раздражает бага с огромным output'ом в консоль - tmux виснет.

kovrik ★★★★★ ()
Ответ на: комментарий от kovrik

Только раздражает бага с огромным output'ом в консоль - tmux виснет.

Ай, чорт, я всё никак не мог понять, почему оно зависло на rsync. При этом сам процесс отработал нормально, только вывод остановился. Это есть в багтрекере?

anonymous ()
Ответ на: комментарий от anonymous

В багтреккере вроде как есть, но баг так и не исправили. Так что лучше вывод в файл редиректить.
Вроде как даже патч есть (но не в основной ветке), но я его не пробовал (http://superuser.com/questions/417556/is-there-any-way-to-prevent-tmux-freezi...)

kovrik ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.