|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 01 Dec 2001 03:59:26 To : Sergey Korshunoff Subject : "Hормальный" редактор под эхотаг -------------------------------------------------------------------------------- Nov 29 06:17 01, Sergey Korshunoff wrote to Zahar Kiselev: SK> Захаp, давай попpобуем обсудить вопpос стандаpтного terminfo SK> и ESC-последовательностей клавиатуpы. Вот погляди, что у меня получилось в результате изысканий. Это мы в прошлом году с одним украинцем возились. За основу было взято описание клавиатуры в QNX, которое мне удалось откопать. Потом бы перерыв, я был занят у себя дома, сейчас вот приехал в Питер и натаскал кучу материалов из интернета по "клавиатурной" тематике. Хотел на днях провести исследование на предмет неявных "традиций" в этом вопросе. В предидущем письме я упоминал, что мне необходимо время на "пережевывание" информации - в действительности я хотел сравнить твой termcap и то, что есть у меня. Я пока не касался задачи выбора esc-кодов, занимался только сопоставлением самих кнопок и имен из curses. Поэтому меня и заинтересовал твой termcap, где уже присутствуют и esc-коды. Кстати - как ты их выбирал? Из головы(что называется "от балды") или на основании каких-то закономерностей? Собствено как ты понимаешь - описать все что угодно - совсем не проблема, главное сделать это достаточно осмысленно и начать продвигать как новый стандарт для линуксовой консоли. Стандарт естественно должен быть не особенно противоречивым и возможно более логичным. Есть еще мысль сделать максимально похожими консоль и ее иксовый эмулятор. И то и другое выдается за эмуляцию vt100, однако почему-то есть отличия. То что ниже - это лишь первый черновик, поэтому прошу сильно не пинать - он и помещен сюда лишь для того, чтобы перестать ругаться и с чего-то начать конструктивное обсуждение. Может быть у тебя будут какие-то идеи по более наглядному представлению этой информации - чтобы ее было удобнее воспринимать в процессе работы над ее совершенствованием? В таблице 1 приведены такие соответствия между клавишами и кодами terminfo, которые либо присутствуют в стандартной раскладке линукса и terminfo для linux, либо не присутствуют, но очевидны (кроме функциональных клавиш). Таблица 2 - комбинации клавиш, которые, по-моему, имеет смысл заводить в terminfo. Плюс поставлен для комбинаций, описанных в таблице 1. Минус для тех, которые трогать не следует. Коды terminfo взяты из таблички для qnx и немного подправлены. Вопросы проставлены в клетках, которые ещё предстоит заполнить. Таблица 3 - коды клавиш из terminfo, не упоминаемые в таблице 1. Быть может, следует использовать в первую очередь коды, имеющие шифтованную пару? Hа Alt-Клавишу назначать простую terminfo-entry, а на Ctrl-Клавишу -- шифтованную? Кстати, таких пар осталось ровно 20. Клавиш в таблице 2 -- тоже 20. *Таблица 1=============================================* Комбинация Код Код Описание клавиш term term info cap ============ ====== ==== ============================= <S-Tab> kcbt kB back-tab key <Right> kcuf1 kr right-arrow key <S-Right> kRIT %i shifted right-arrow key <PgUp> kpp kP previous-page key <PgDn> knp kN next-page key <Left> kcub1 kl left-arrow key <S-Left> kLFT #4 shifted left-arrow key <Ins> kich1 kI insert-character key <S-Ins> kIC #3 shifted insert-character key <Del> kdch1 kD delete-character key <S-Del> kDC *4 shifted delete-character key <Down> kcud1 kd down-arrow key <S-Down> kind kF scroll-forward key <End> kend @7 end key <S-End> kEND *7 shifted end key <Home> khome kh home key <S-Home> kHOM #2 shifted home key <Up> kcuu1 ku up-arrow key <S-Up> kri kR scroll-backward key <PrtScrn> kprt %9 print key <S-PrtScrn> kPRT %f shifted print key <Backspace> kbs kb backspace key *======================================================* *Таблица 2==============================* Клавиша Plain Shift Ctrl Alt ============== ===== ===== ===== ===== <Tab> - + kctab ? <Backspace> + ? ? ? <Return> - ? kent ? <PrtScrn> + + kRDO krdo <Ins> + + kil1 krmir <Del> + + kdl1 ked <Home> + + ? kbeg <End> + + kext kel <PgUp> + - kPRV kprv <PgDn> + - kNXT knxt <Up> + + ? ? <Down> + + ? ? <Right> + + kMOV kmov <Left> + + kMSG kmsg <KP/> - ? ? ? <KP*> - ? ? ? <KP-> - ? kCAN kSPD <KP+> - ? kCMD kSAV <KPEnter> - ? ? ? <KP5> kcmd ? kcpy kcrt *=======================================* *Таблица 3======================================* Код Код Описание term term info cap ====== ==== =================================== ka1 K1 upper left of keypad ka3 K3 upper right of keypad kb2 K2 center of keypad kc1 K4 lower left of keypad kc3 K5 lower right of keypad ktbc ka clear-all-tabs key kctab kt clear-tab key khts kT set-tab key kclr kC clear-screen or erase key kclo @3 close key krmir kM sent by rmir or smir in insert mode kent @8 enter/send key kf0 k0 F0 function key kil1 kA insert-line key kll kH lower-left key (home down) kmrk %2 mark key kopn %6 open key kref &1 reference key krfr &2 refresh key krst &4 restart key kslt *6 select key kbeg @1 begin key kBEG &9 shifted begin key kcan @2 cancel key kCAN &0 shifted cancel key kcmd @4 command key kCMD *1 shifted command key kcpy @5 copy key kCPY *2 shifted copy key kcrt @6 create key kCRT *3 shifted create key kdl1 kL delete-line key kDL *5 shifted delete-line key ked kS clear-to-end-of-screen key kel kE clear-to-end-of-line key kEOL *8 shifted clear-to-end-of-line key kext @9 exit key kEXT *9 shifted exit key kfnd @0 find key kFND *0 shifted find key khlp %1 help key kHLP #1 shifted help key kmsg %3 message key kMSG %a shifted message key kmov %4 move key kMOV %b shifted move key knxt %5 next key kNXT %c shifted next key kopt %7 options key kOPT %d shifted options key kprv %8 previous key kPRV %e shifted previous key krdo %0 redo key kRDO %g shifted redo key krpl &3 replace key kRPL %h shifted replace key kres &5 resume key kRES %j shifted resume key ksav &6 save key kSAV !1 shifted save key kspd &7 suspend key kSPD !2 shifted suspend key kund &8 undo key kUND !3 shifted undo key *===============================================* Zahar --- Msged/LNX 6.1.0 * Origin: undefined location (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883c08395b.html, оценка из 5, голосов 10
|