Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.GOLDED
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 28 Sep 24 01:53:26, всего сообщений: 3614
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 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:

<http://invisible-island.net/ncurses/ncurses.faq.html#which_terminfo>

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 меня выбросили из голдеда в терминал.

Хм. Похоже Shift+F2 порождает "^[O..." - прикольно :)

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, то можно поставить
актуальную версию в домашний каталог пользователя:

1. Скачать и распаковать актуальную версию terminfo.src:
<http://invisible-island.net/ncurses/ncurses.faq.html#which_terminfo>

2. Поставить её:
    $ mkdir $HOME/.terminfo
    $ tic -x terminfo.src
    $ TERM=screen.xterm-256color; export TERM

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru

 
--- ifmail v.2.15dev5.4
* Origin: ГАИШ МГУ (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.036354 секунды