После более года разработки представлен (http://sourceforge.net/p/tmux/mailman/message/34090417/) релиз консольного оконного менеджера tmux (http://tmux.sourceforge.net/) 2.0 ("terminal multiplexer"), разрабатываемого в рамках проекта OpenBSD в качестве распространяемой под лицензией BSD замены программы GNU Screen (http://www.gnu.org/software/screen/). Tmux позволяет организовать многооконный интерфейс в консоли, через мультиплексирование одного физического терминала на несколько виртуальных терминалов.Наиболее заметные изменения (http://sourceforge.net/projects/tmux/files/tmux/tmux-2.0/) в tmux 2.0:
- Обеспечено отражение сеансов в базе utmp (работает, если на этапе сборки в системе присутствовала библиотека utempter);
- Прекращена поддержка команды 'choose-list'. Удалены опции 'monitor-content' и 'pane_start_path'. Из категории сессионных в серверные переведены опции 'terminal-overrides' и 'message-limit';
- В команду "set-buffer" добавлен режим дополнения ("-a"). В режиме копирования (copy-mode) представлена команда 'append-selection';
- В режиме выбора (choose-mode) реализованы команды, которые могут привязываться к другим командам: start-of-list, end-of-list, top-line, bottom-line;
- В команде choose-buffer реализована поддержка UTF-8;
- Применён комбинированный способ навигации по панелям: если есть только один возможный вариант выбора панели, то выбирается она, в противном случае осуществляется переход к последней используемой панели;
- В команды 'new-session', 'new-window', 'split-window' и 'respawn-pane' добавлена возможность использования нескольких аргументов и корректной обработки данных в кавычках;- В команду 'capture-pane' добавлены опции '-S-' и '-E-' , подразумевающие начало и конец панели;
- Изменена поддержка привязки функциональных клавиш с номерами выше F12: номера F13-F24 теперь эквивалентны Shift+F1-F12, F25-F36 - Ctrl+F1-F12, F37-F48 - Ctrl+Shift+F1-F12, F49-F60 - Menu+F1-F12, F61-F63 - Menu+Shift+F1-F12;
- Возможность использования идентификатора панели внутри спецификатора сеанса или окна (session-of-%1 или window-of-%1), а также идентификатора окна в спецификаторе сеансе (session-of-@1);
- Поддержка определения формата (-F) для команд 'copy-pipe' и 'if-shell';
- В команды 'split-window' и 'join-window' добавлена опция "-b" для создания панели слева или выше целевой панели.
Основные отличия (http://tmux.cvs.sourceforge.net/viewvc/*checkout*/tmux/tmux/FAQ) tmux от GNU Screen:
- Исходные тексты распространяются в рамках лицензии BSD. Более современная и упрощенная кодовая база (коду screen 20 лет);- Предусмотрена возможность подключения расширений от сторонних разработчиков;
- Четко формализованная клиент-серверная модель, при которой окна выступают в роли независимых объектов, которые могут сопоставляться и перераспределяться между разными сессиями. При этом поддерживается назначение одного окна нескольким разным клиентам и передача окон от одного клиента другому;
- Наличие механизма автоматизации выполнения типовых действий, через подключение внешних скриптов. Полноценный интерфейс управления из командной строки, позволяющий управлять всеми операциями tmux из скриптов;
- Наличие нескольких независимых буферов обмена;
- Поддержка опции для ограничения размера окна. Более гибкие возможности по разбиению окон на части (поддержка вертикального разделения);
- Более ясный синтаксис для формирования содержимого строки статуса. Возможность отображения в строке статуса первой строки вывода определенной команды;
- Более экономное расходование оперативной памяти;
- Улучшенная поддержка UTF-8.URL: http://sourceforge.net/p/tmux/mailman/message/34090417/
Новость: http://www.opennet.me/opennews/art.shtml?num=42188
>F61-F63 - Menu+Shift+F1-F12Что-то я не уловил зависмость... А как ввести, например, F-90?
Ну вообщем это просто промизведение видимо F12*F10=F120
действительно, с этими F1-120 намудрили.
для vim'еров следовало бы сделать бинд Ctrl + b, Shift + f, ввести число от 1 до 120 и жмякнуть Enter. пусть tmux сам отправит введенное F<число>.
ну а для emacs'еров да, оставить такую вот крутую распальцовку через всю клавиатуру.
в снапах есть вже?
Я уже пару лет как скрин совсем не юзаю, сижу на тмуксе :)
Вот каждый раз пишут про это вертикальное разделение в отличиях...
Почему у меня это вертикальное разделение как минимум несколько лет как есть в screen?
Значит вы не разбираетесь в современном маркетинге.
официально vsplit в screen добавили только в 4.2.0, который вышел год назад. до этого только со сторонними патчами
минoщина
хотелось про сохранение сессий
>Основные отличия tmux от GNU Screen:
> Предусмотрена возможность подключения расширений от сторонних разработчиков;
о, отлично! благодарю
> Более современная и упрощенная кодовая база (коду screen 20 лет);Над кодом GNU Screen уже давно начаты работы по приведению оного в порядок.
Кстати, проблему с зависанием tmux на больших объёмах вывода уже исправили, или всё так же предлагается прикрывать архитектурную проблему костылями?
> Кстати, проблему с зависанием tmux на больших объёмах вывода уже исправили, или всё так же предлагается прикрывать архитектурную проблему костылями?Я даже костылями прикрыть не могу. c0-change-* параметры не дают результата, всё равно виснет.
В некоторых ситуациях и прикрыть костылями нельзя.
Можно поподробней: в чем проблема?
> Можно поподробней: в чем проблема?tmux намертво виснет при достаточно большом объёме вывода.
Хм, а я наоборот наблюдаю - screen виснет время от времени по этой же причине. Может собака в другом месте порылась и они оба по одной причине виснут?
> Хм, а я наоборот наблюдаю - screen виснет время от времени по
> этой же причине. Может собака в другом месте порылась и они
> оба по одной причине виснут?Вообще не видел жалоб на screen, зато на tmux — полон интернет. http://superuser.com/questions/417556/is-there-any-way-to-pr..., например.
Сейчас попробовал запускать
cat /dev/zero|hd -v. Ни screen, ни tmux не виснет. Разница только в том, что в терминале на VTE tmux ещё долго выводит текст после ^c (но процессы завершились). В urxvt разницы нет. Это наталкивает на мысль о том, что эмуляторы терминала могут быть причастны к проблеме.
> tmux намертво виснет при достаточно большом объёме вывода.Только что попробовал. cat файла на 300Мб. Все отлично работало. tmux 2.0.
> Кстати, проблему с зависанием tmux на больших объёмах вывода уже исправили, или всё так же предлагается прикрывать архитектурную проблему костылями?В бытность мою инженером службы поддержки одного программного продукта мы таких вот нежно называли «уголками» за любовь к «corner cases» и шутили, мол, хорошо, что делопроизводство у нас на английском, а то пришлось бы от «вырожденного случая» разговорные идентификаторы наследовать.
> Кстати, проблему с зависанием tmux на больших объёмах вывода уже исправилиа что есть большой объем? Просто пользуюсь сабжем около года, пока ни разу проблем не было. Но может конечно так везет
В screen скучные обои?!
Скучный GPL!!!