Разработчики проекта OpenBSD объявили (http://www.undeadly.org/cgi?action=article&sid=20090707041154) о включении в состав базовой системы программы Tmux (http://tmux.sourceforge.net/) ("terminal multiplexer"), позволяющей организовать многооконный интерфейс в консоли, через мультиплексирование одного физического терминала на несколько виртуальных терминалов. Tmux совместим на уровне клавиатурных комбинаций и опций командной строки с популярным консольным оконным менеджером GNU Screen (http://www.gnu.org/software/screen/), за исключением главной управляющей последовательности (Ctrl+B вместо Ctrl+A), измененной для предотвращения пересечений при запуске tmux внутри screen и наоборот.
Основные достоинства (http://tmux.cvs.sourceforge.net/viewvc/*checkout*/tmux/tmux/FAQ) и отличия (http://tmux.cvs.sourceforge.net/viewvc/*checkout*/tmux/tmux/FAQ) Tmux от GNU Screen:- Исходные тексты распространяются в рамках лицензии BSD. Более современная и упрощенная кодовая база (коду scre...
URL: http://www.undeadly.org/cgi?action=article&sid=20090707041154
Новость: http://www.opennet.me/opennews/art.shtml?num=22541
Theo de Radt отметил так же факт очень качественного исходного кода. Именно по этой причине данный менеджер был включен в базовую часть
И что, можно без костылей сделать чтобы табы начинались с единицы, а не нуля?
Ещё одна жертва Pascal...
подумай какими кнопками переключаются табы, посмотри где цифры, а где ноль.
У меня ноль в правильном месте ;) Перед единицей.
Пруфпик.
в SmallTalk тоже с 1 ну и что?
Да не, массивы с 1 в ЯП это как раз полное ублюдство. Коим smalltalk и является.
>Да не, массивы с 1 в ЯП это как раз полное ублюдство.Почему? Нумерация элементов множества с единицы - математика множеств. Все формулы работы с множествами исходят из этого. А с нуля какого лешего вдруг удобней? Типа целых 256 возможных значений индекса одним байтом, а не 255?
Программирование и математика это несколько разные вещи.Индексы начинающиеся с нуля гораздо удобней в программировании.
Пример:
таблица 10x10 одна цифра задает строку вторая столбец.
расчет линейного смещения это Y * Width + X>Типа целых 256 возможных значений индекса одним байтом, а не 255?
Вот из-за подобных ошибок "...массивы с 1 в ЯП это как раз полное ублюдство." (c)
в программировании гораздо удобней полу-открытые диапазоны.
Left <= X < Rightрасчет длинны диапазона: Right - Left
диапазон с 0: 256 - 0 = 256
диапазон с 1: 256 - 1 + 1 = 256
Вполне очевидно, что в прикладном программировании на языках высокого уровня это не имеет никакого глобального значения. Это просто тупой фанатский холивор
Если говорить про глобальное значение в прикладном программировании.ЯВУ должен позволять программисту выражать свои мысли в явной, непротиворечивой форме.
Вопрос с индексами наиболее удачно решен в Ada, где программист в явном виде может задать диапазон.примерно так
subtype Latin_Alpha_Up is Character range 'A'..'Z';или так
type Offset is mod 2**16;В зависимости от нужд программиста.
Однако, если говорить про частности, то единственный аргумент _за_ индексы [1..max] в PASCAL и FORTRAN -- это привычка математиков. При чем, для _этой_ целевой аудитории решение удачное т.к. снижается вероятность ошибки, на пример при наборе формул.
С другой стороны индексация [0..max) более удачна в повседневной программистской практике.
К примеру преобразование индекса в смещение, или наоборот смещения в индекс выполняется с меньшим колличеством телодвижений. Как следствие снижается вероятность ошибок.>Это просто тупой фанатский холивор
Да. Слишком много споров из-за такого пустяка.
>Индексы начинающиеся с нуля гораздо удобней в программировании.Чем дальше от системного и ближе к прикладному программированию, тем больше расхождений между компьютерными странностями и реальным миром, в котором первый элемент имеет номер 1 а не ноль.
>расчет длинны диапазона: Right - Left
>диапазон с 0: 256 - 0 = 256
>диапазон с 1: 256 - 1 + 1 = 256значение n-го элемента: ar[n-1]
и то же при естественном исчислении: ar[n]разность между значениями n-го и m-го элементов: ar[n-1] - ar[m-1]
и то же самое при нормальном подходе ar[n] - ar[m]диапазоны с n-го по m-го включительно
[(n-1)..(m-1)]
[n..m]диапазоны с n-го по m-го не включая
[(n)..(m-2)] // вообще задница!
[(n+1)..(m-1)]Видно же, что первые варианты заставляют ломать голову, а вторые, наоборот, сами себя описывают без комментариев. Математику не дураки придумали, а програмисты просто просто привыкли к странностям, история которых начинается с системного программирования, где ноль и 255 имеют одинаково важное применение.
В какой-то док-ции по Питону автор умудрился объяснить границы среза: индексы указывают не на граничные элементы, а на промежутки между. Типа индекс 3 указывает на промежуток между вторым и третьим элементом. "Правильной" дорогой идёте, товарищи. ;)
Сдаюсь ;-)Действительно, объяснить математику сакральный смысл числа '0' на линейке о-о-очень сложно Ж8-)
PS. Автор док-ции на Питон похоже замучался объяснять понятие полу-открытого диапазона. Это как объяснять Декарту, что люди обычно читают сверху в низ, и соответственно 3-я строка ниже 2-ой.
Прошу заметить, я неумаляю заслуги Декарта как ученого; и прекрасно понимаю, что без математиков не может появиться ни одна точная наука. Но вековые традиции...PPS. А-а-а была ни была!
// Range - полу открытый диапазон. т.е range.end на 1 больше чем последнее значение
bool is_adjacent (const Range& previos, const Range& next)
{
return previos.end == next.begin;
}length length_of_range (const Range& r)
{
return r.end - r.begin;
}-- Range - закрытый диапазон т.е. range.Last является последним занчением
function Is_Adjacent (Previos, Next : in Range) of Boolean
begin
return Previos.Last + 1 = Next.First;
end;funсtion Length_Of_Range (R : in Range) of Length
begin
return R.Last - R.First + 1;
end;Товарищи идут правильно. Dixi
глупо, Ctrl+B - это совсем другое сочетание клавиш, его уже очень неудобно нажимать пальцами одной руки (как Ctr+A). лучше уж что-нибудь вроде Ctrl+X или Ctrl+W, что думаете, господа? Надо бы написать им в список рассылки.
>глупо, Ctrl+B - это совсем другое сочетание клавиш, его уже очень неудобно
>нажимать пальцами одной руки (как Ctr+A). лучше уж что-нибудь вроде Ctrl+X
>или Ctrl+W, что думаете, господа? Надо бы написать им в список
>рассылки.Да - пусть сделают Ctrl-C ! ;)
> лучше уж что-нибудь вроде Ctrl+X или Ctrl+Wдля кого лучше? для пользователей dvorak раскладки C-w точно неудобная комбинация. Кроме того, C-w в имаксе и шеллах по умолчанию вырезает регион текста (kill-region), операция частая, но не чаще чем перемещение в начало строки по C-a.
Вот C-q не часто используется в текстовых приложениях. И одинаково в удобном месте находится как для пользователей qwerty, так и dvorak (на месте клавиши `X' в qwerty).
не трож C-q !
Вы в Vi документы двумя руками листаете? :))
>глупо, Ctrl+B - это совсем другое сочетание клавиш, его уже очень неудобно
>нажимать пальцами одной руки (как Ctr+A). лучше уж что-нибудь вроде Ctrl+X
>или Ctrl+W, что думаете, господа? Надо бы написать им в список
>рассылки.Да идиоты они. screen отлично работает со вложенностью, так как Ctrl+A A посылает Ctrl+A вложенному скрину. Сделали бы так же - была бы абсолютная 100% совместимость с скрином в обе стороны, а тут придется путаться с левыми сочетаниями клавиш.
> * Наличие нескольких независимых буферов обмена.есть в screen, registers
> Поддержка выбора раскладки клавиатуры в стиле vi или emacs;
без возможности переназначения клавиш в copy mode. В screen хотя бы эмуляцию emacs'а на vi-сочетаниях можно сделать.
> * Более гибкие возможности по разбиению окон на части (поддержка вертикального разделения);
есть в screen
:split -v
:layout new default> * Более ясный синтаксис для формирования содержимого строки статуса.
и более ущербные возможности. Может кто знает как поменять цвета статуса окна в зависимости активное оно или нет?
> * Более экономное расходование оперативной памяти;
и менее экомичное расходование процессорного времени. Попробуйте поскроллить большой файл в less и понадбулюдайте расходование CPU у screen'а и tmux'а.
> * Улучшенная поддержка UTF-8.
kanji или кирилица в статусе это конечно интересно
Кошерно. Пойду соберу пакет.
странные люди -сами освобождаються от пакетов с лицензией ГНУ и всё переделывают на BSD и зачем то портируют свою утилиту под линукс...
С другой стороны необходимо переделать софт написанный 20-30 лет назад в том числе и ОС с точки зрения прошлых ошибок и давно нужных инноваций . ещё лет пять пройдёт и если Timux лучше получиться(хотя лет через 20 он тоже будет кушать побольше памяти!) , то и screen перепишут с нуля под ГНУ лицензией под другим именем.
чет UTF-8 не пашет в нем.... а говорили, что улучшенная поддержка...
поменять на C-a не проблема: в Makefile/GNUMakefile META=\002 заменить на META=\001во фре 7.2 у меня утф-локаль - в скринах намана все, а в этом tmux фигу...
В доках написано, как его включить. И в ФАКе написано тоже, для удобства тех, кто не читает нудные доки :)
tmux включён в грядующий релиз ubuntu 9.10 и в Debian "Unstable"
В составе базовой системы много лет есть window, который, хоть и не умеет детачить терминал (в силу возраста), позволяет очень удобно иметь на экране одновременно несколько окон произвольного размера, одно поверх других, и т.д. А tmux так умеет?
>В составе базовой системы много лет есть window, который, хоть и не
>умеет детачить терминал (в силу возраста), позволяет очень удобно иметь на
>экране одновременно несколько окон произвольного размера, одно поверх других, и т.д.
>А tmux так умеет?RTFM^WУмеет