TextMode: как убрать "мусор" от служебных клавиш

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
Irina
Заглянувший
Сообщения: 18
Зарегистрирован: 23 окт 2006, 13:51
Откуда: Minsk

TextMode: как убрать "мусор" от служебных клавиш

Сообщение Irina »

Юзеры работают в текстовом режиме и жмут Delete, стрелки и другие служебные клавиши. Появляется "мусор" в виде квадратных скобок и т.д... Клавишей BackSpace это можно убрать, но все равно некрасиво. Где, что и как настроить, чтобы "мусор" не появлялся?
(Mandrake 10.0, Mandriva 2005, 2006, но, думаю, это не критично, и есть общий способ для всех Linux'ов)

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Irina, "текстовый режим" - это в смысле консоль, которая без иксов?
Опыт растет прямо пропорционально выведенному из строя оборудованию

Irina
Заглянувший
Сообщения: 18
Зарегистрирован: 23 окт 2006, 13:51
Откуда: Minsk

Сообщение Irina »

Да, это консоль.
(Sorry, с терминологией у меня не очень).
Может быть, как-нибудь с помощью stty, но там столько всего...

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

Irina, может попробывать спросить в форуме на linuxquestions.org если знание english позволяет хоть как-то.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Irina
Заглянувший
Сообщения: 18
Зарегистрирован: 23 окт 2006, 13:51
Откуда: Minsk

Сообщение Irina »

Вдогонку. Попробовала возиться с stty. Результаты следующие.

stty -F -echo
отключает "мусор" от служебных клавиш, а также отображение всех остальных. Юзер жмет "abc123...", а в строке пусто.

stty -F -echoctl
отключает "мусор" от служебных клавиш, при этом "стрелки" и "Delete" действуют так, как им и положено. Юзер забирается стрелками в середину экрана, где висит недоступный ему ранее текст, и Delet'ом организует в нем дырки от бублика :(

Наверное, лучше оставить все как было... :)

Irina
Заглянувший
Сообщения: 18
Зарегистрирован: 23 окт 2006, 13:51
Откуда: Minsk

Сообщение Irina »

Подсмотрела у Тейнсли ("Программирование в Linux Shell") простой скрипт для организации пользовательского меню вроде такого:

clear
echo "abc: запустить такую-то задачу"
echo "efg: сделать отчет"
echo "<мнемоника>: <описание действия>"
[...]
echo -n " Наберите вариант [abc, efg, ...] и нажмите Enter >"
read variant

Конечно, некорректные значения (в том числе и с мусором) игнорируются. Конечно, Backspace (до нажатия Enter) помогает. Но некузяво как-то.
Но курсор хотя бы не уходит из нужной строки.
А с -echoctl, как уже говорилось, комбинируя стрелку вверх и Delete, пользователь получает возможность прогрызать ходы в самом меню.

ZvK
Фанатеющий
Сообщения: 140
Зарегистрирован: 30 май 2006, 18:07
Контактная информация:

Сообщение ZvK »

может лучше dialog ?

Irina
Заглянувший
Сообщения: 18
Зарегистрирован: 23 окт 2006, 13:51
Откуда: Minsk

Сообщение Irina »

(Спасибо!) А что это?

Аватара пользователя
Quantum
Неотъемлемая часть форума
Сообщения: 259
Зарегистрирован: 20 мар 2006, 15:53
Откуда: г. Минск

Сообщение Quantum »

Библиотечка. Позволяет добавлять псевдографику к скриптам.
Качать тут.

Ответить