|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : yx 2:5020/400 22 Nov 2001 20:59:59 To : Eugene Grosbein Subject : Re: shells & termcap -------------------------------------------------------------------------------- Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: >>> Кто-нибудь может объяснить, почему самые распространенные шеллы >>> (sh, tcsh, bash) для привязки клавиш к действиям (delete-char, >>> backspace, и т.д.) оперируют конкретными кодами, а не terminal >>> capabilities? Почему нельзя сказать: на клавишу kD повесить delete-char, > >> можно, если есть такая (и не кривая) capability >> (kD в termcap, kdch1 в terminfo) >> нп у меню сейчас TERM=wsvt25, сравниваю нп с cons25: >> % infocmp -C $TERM cons25 | grep kD >> kD: NULL, '\177'. >> т.е. как и в vt100 (тоже и с ansi терм): >> % infocmp -C vt100 cons25 | grep kD >> kD: NULL, '\177'. >> % infocmp -C vt100 xterm | grep kD >> kD: NULL, '\E[3~'. >> итого - нет kD capability в termcap для честного vt100 эмулятора. > > Если нет, то и нет. Hо если есть? Гораздо лучше уметь биндить и на > capability, и на коды. Причем на коды - как fallback, а не как > основной способ. > угу видал я когда на del отстреливаются символы на две колонки назад. >> (DEL у меня забинден и отрабатывает нормально, как впрочем и BS). > >>> а приходится писать 'bind ^? em-delete-or-list' для .editrc, >>> 'Rubout: delete-char' для .inputrc и 'bindkey ^? delete-char' для .cshrc ? >>> А для других терминалов дублировать и молиться, что они не пересекутся. >>> >>> Может, есть какая-то разумная причина этому? >>> >> часто плохо определенная цепочка >> kbd_keycode-term_cap_info_entry-key_sequence >> особенно для BS/DEL, и когда во многих терминалах BS и DEL реализованы >> через >> друг друга (в отличии от четко определенного erase char, посм. можно с >> stty). >> Плюс еще терминальные deviant реализации. >> Плюс еще, нп, "хорошо" получается получать term entry ориентируясь на >> $TERM когда какое-нибудь Xtermapp ориентируется на $COLORTERM. >> И еще видимо встречаются различные "приятные плюсы" с >> BS/DEL accordance, specific termname, deviant implementation, etc. >> Хотя всю эту специфику можно проверять/учитывать (иногда так и >> делают), >> однако морока и не всегда срабатывает - проще bindkey на >> специфичные capabilities, а нормальные так и подхватываются без >> bindkey. > > Проще говоря, всем на все плевать. > ну да, и если точней это скорей похоже на - "вечный ранний кембрий - жизнь только в море" :)) > Как мне теперь повесить kD на delete-char, > чтобы в xterm через editline(3) работало? > можно посмотреть где-то в инете болтаются on-fly скрипты, которые делают идейно правильные term entries без всяких kbd девиаций с BS/DEL, и соответствующим четким разносом BS на backspace keysym и DEL на delete keysym через локальный .terminfo. ы тогда по идее, все что честно через terminal capabilties работает - отрабатывает нормально и в иксах и в консоле. (хотя кривой сам по себе term xterm мне пока не попадался на глаза). bye. -- Vladimir Yakovetsky --- ifmail v.2.15dev5 * Origin: yx disorganized groupie (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2921890cce220.html, оценка из 5, голосов 10
|