LINUX.ORG.RU

Как починить некорректное поведение «стрелочных» кнопок?


0

1

Коллеги,

Я подключаюсь к Дебиан-машине через SSH. Кнопки стрелок работают нормально в консоли. Но в программах, которые читают STDIN, вместо ожидаемого поведения (курсор двикается в лево/право), отображаются непонятные знаки:

BOX]temp$ cat tmp.py
while True:
 n = raw_input("enter something >")
 print ">%s<" % n


SBX]temp$ python tmp.py
enter something >Tut zhmem strrelky nazad^[[D^[[D^[[D i vprered^[[C^[[C^[[C
>Tut zhmem strrelky na i vprered   <
enter something >^CTraceback (most recent call last):
  File "tmp.py", line 2, in <module>
    n = raw_input("enter something >")
KeyboardInterrupt
BOX]temp$
★★

Имхо, ты сам должен обработать такое поведение, на то он и raw input. И такая обработка без сторонних библиотек или собственных костылей займёт много времени.

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

Используй readline или tecla

buddhist ★★★★★
()

приведённые скрипты - это вы хотите показать какие знаки отображаются при нажатии стрелок ?

про readline уже сказали, а вообще «echo $TERM» на своей и удалённой машине покажи.

MKuznetsov ★★★★★
()

вместо ожидаемого поведения (курсор двикается в лево/право)

Во-первых, «влево», «вправо». Во-вторых, это с какой же стати оно ожидаемое? У тебя есть поток символов, в нём присутствуют управляющие последовательности кодирующие твои курсорные команды, с какой стати они должны обрабатываться если ты их не обрабатываешь?

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