= Сообщение: 733 из 3614 ========================================= RU.GOLDED = От : Serguei E. Leontiev 2:5020/400 29 Nov 15 22:00:55 Кому : Michael Dukelsky 29 Nov 15 22:00:55 Тема : Re: curses, GoldEd, Shift, Ctr и современных терминалах FGHI : area://RU.GOLDED?msgid=<1187503232@ddt.demos.su>+29165277 На : area://RU.GOLDED?msgid=2:5020/1042+565b2110 = Кодировка сообщения определена как: CP866 ================================== ============================================================================== From: "Serguei E. Leontiev" <leo@sai.msu.ru>
Привет Михаил,
От 29 ноября 2015 г., 19:00:14 в fido7.ru.golded ты писал: MD> Я собрал голдед в CentOS 5. Запускаю его в CentOS 5.11 через MD> screen и читаю через ssh в konsole, запущенной в openSUSE.
За screen ничего сказать не могу, а для konsole в terminfo есть отдельные терминалы, смотри комментарии в актуальной версии terminfo.src:
SL>> 1.1 Дополнительный код распознавания <Esc><Буква в SL>> КОИ8> как комбинации <Alt>+<Буква латиницы> SL>> для Golded+; MD> Работает. Большое спасибо! SL>> 1.2 Реакция на коды curses getch() для SL>> <Shift>+<вверх/вниз>, MD> Голдед спрашивает: "Drop this message? Yes/No" в ответ на обе MD> комбинации.
Это намекает, что Esc-последовательность <Shift>+<вверх/вниз> не описана в terminfo для терминала заданного переменной TERM. Поэтому код Golded+ реагирует его начало "^[[..." как на Esc.
Можешь попробовать взять скрипт на Python с Яндекс.Диска https://yadi.sk/d/fuLULT5qkoKZe быть может, с ним проще будет уточнить тип терминала.
SL>> <Shift>+<PgUp/PgDwn> MD> Hикакой реакции.
В эмуляторах терминала часто используют <Shift>+<PgUp/PgDwn> для прокрутки экрана, для xterm это регулируется ресурсами (см. koi8rxterm-phonetic.sh), для konsole не знаю, можно начать с `man konsole'.
SL>> и <Alt/Ctrl/Shift>+Fn; MD> Реакция на Alt+F5-F12: "Drop this message? Yes/No". MD> Реакция на Ctrl+F5-F12: "Drop this message? Yes/No". MD> В ответ на Shift+F2 меня выбросили из голдеда в терминал.
MD> Реакция на Shift+F5-F12: "Drop this message? Yes/No". SL>> 1.3 Распознавание с помощью общеупотребительных определяемых SL>> пользователем расширений terminfo/ncurses и иными способами SL>> Esc-последовательностей отвечающих за SL>> <Ctrl>+<стрелка>; MD> Ctrl+<влево> и Ctrl+<вправо> передвигают курсор на MD> одно слово. Ctrl+<вверх> и Ctrl+<влево> MD> Ctrl+<вниз> работают так же, как и без Ctrl. SL>> 2.1 Исправлена ошибка распознавания SL>> <Alt>+<BackSpace> MD> "Drop this message? Yes/No"
Хм. А что у тебя генерит просто BackSpace?
SL>> и <Alt>+<Enter> MD> Hикакой реакции. SL>> 2.2 Исправлена обработка ошибки для не поддерживаемых SL>> символов (клавиш) curses, раньше выскакивал 'Ъ'; MD> Это не знаю, как проверить. MD> Теперь, что говорит konsole через ssh без screen: MD> [mike@fido ~]$ echo $TERM MD> xterm MD> [mike@fido ~]$ infocmp $TERM | egrep MD> "^[^[:space:]]|k(LFT|RIT|ri|ind)=" # Reconstructed via MD> infocmp from file: /usr/share/terminfo/x/xterm xterm|xterm MD> terminal emulator (X Window System), kHOM=\E[1;2H, MD> kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, MD> kRIT=\E[1;2C, kb2=\EOE, kbs=\177, kcbt=\E[Z, MD> khome=\EOH, kich1=\E[2~, kind=\E[1;2B, kmous=\E[M, MD> knp=\E[6~, kpp=\E[5~, kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, MD> [mike@fido ~]$ od -c ^[[1;2D^[[1;2C^[[1;2B^[[1;2A MD> 0000000 ^ [ [ 1 ; 2 D ^ [ [ 1 ; 2 C MD> ^ [ и дальше ждёт чего-то.
Забыл добавить замечание, что полезно нажать <CR><Ctrl>+D, что бы od получил EOF и завершил свою работу.
od -- octal, decimal, hex, ASCII dump
Судя по выдаче, <Shift>+<стрелки> должны работать.
MD> А теперь с запущенным screen: MD> [mike@fido ~]$ echo $TERM MD> screen MD> [mike@fido ~]$ infocmp $TERM | egrep MD> "^[^[:space:]]|k(LFT|RIT|ri|ind)=" # Reconstructed via MD> infocmp from file: /usr/share/terminfo/s/screen screen|VT MD> 100/ANSI X3.64 virtual terminal, [mike@fido ~]$ od -c MD> ^[[1;2D^[[1;2C^[[1;2B^[[1;2A MD> 0000000 ^ [ [ 1 ; 2 D ^ [ [ 1 ; 2 C MD> ^ [
Судя по выдаче, <Shift>+<стрелки> для терминала TERM=screen не описаны, а терминал передаёт Esc-последовательность характерную для xterm/vt420/DECFNK.
Можно попробовать TERM=screen.xterm-256color
Если такого терминала нет системном terminfo, то можно поставить актуальную версию в домашний каталог пользователя: