LINUX.ORG.RU
ФорумTalks

Терминал в виде чат-мессенджера: ересть или удобство?

 , ,


1

4

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

Общее у них — это разделение области ввода и области вывода.

Почему подобное не используется в интерфейсе с компьютером?

Преимущества:

1. Многострочный ввод становится очень простым, например Ctrl-Enter или Shift-Enter переводит строку, просто Enter посылает на исполнение. Или наоборот. Копирование шелл-команды даже с переводами строк не посылает её на исполнение.

2. Если работающая в фоновом режиме программа послала сообщение на stdout или stderr, то оно никак не повлияет на поле ввода.

3. Как команды пользователя, так и ответы системы (результаты выполнения программы) могут сопровождаться метками времени, позволяющими узнать, сколько заняло исполнение команды без time. Кроме того, можно узнать, прочитав лог консоли, когда была выполнена та или иная команда.

4. Потенциально можно было бы отличать выводы разных команд и снабжать их соответствующими пометками (как в групповом чате сообщения разных пользователей).

5. Эти логи можно автоматически сохранять в текстовые файлы, что бы потом найти, какие команды ты вводил месяц или два назад и какой был их результат.

6. В поле ввода и вывода можно реализовать подсветку синтаксиса у введённой команды.

Недостатки:

1. Псевдографические (nano, mc, top) приложения не будут работать.

2. Не будет совместимости с графическими телетайпами типа VT100.

Есть ли такие терминальные программы для GNU/Linux? Пробовали? Как впечатления?

★★★★★

Последнее исправление: Xenius (всего исправлений: 3)
Ответ на: комментарий от no-such-file

Ничего не мешает разные программы запускать в разных вкладках, как сообщения в ростере чат-программы.

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

Для этого уже есть мульиплексоры. И да, они могут быт ьв разных вкладках )

Главная идея — это разделение автодополнения и прочего управления вводом и обрабатывающей программы.

Кстати это больше соответствует духу UNIX-way. Например bash только выполняет команды и всё, а формирует их (включая подсветку синтаксиса, многострочный ввод и прочее) другая программа.

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

запускать в разных вкладках

Это и так есть. В чём новизна?

no-such-file ★★★★★
()
Ответ на: комментарий от Xenius

Кстати это больше соответствует духу UNIX-way. Например bash только выполняет команды и всё, а формирует их (включая подсветку синтаксиса, многострочный ввод и прочее) другая программа.

Ну, как сказать. Например, дополнение неразрывно связанно с текущим состоянием оболочки и требует знание её состояния (разбор строки, набор функций, алиасов, значения переменных окружения и т.д.).

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

А тут ты прав, да. Придётся или жертвовать частью автодополнения (шелл-функции, переменные), или как-то это компенсировать, например системе дополнения придётся при запуске сессии запрашивать команды env и может ещё какие-то, а затем при подсветке синтаксиса следить. Но тогда дополнять некоторые шелл-функции и переменные, оно не сможет:

. <(base64 -d<<<ZXhwb3J0ICJzdXg9V2luZG93cyIK)
Например после вот такого $s<tab> дополняться не будет. С другой стороны, при анализе командной строки, можно попытаться дополнять строки которые встречались ранее в истории, чего не будет делать обычный шелл.

Xenius ★★★★★
() автор топика
Последнее исправление: Xenius (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.