Summary: | /etc/inputrc: Ctrl-arrows in xterm don't work | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Ivan Zakharyaschev <imz> |
Component: | setup | Assignee: | Alexey Gladkov <legion> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | glebfm, ldv, legion, php-coder, placeholder, wrar |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 22021, 18383 |
Description
Ivan Zakharyaschev
2008-05-12 22:08:47 MSD
One part of this bug is also valid for gnome-terminal -- https://bugzilla.altlinux.org/show_bug.cgi?id=15629 . One part of this bug (Ctrl-arrows) is also valid for konsole from KDE3 -- https://bugzilla.altlinux.org/show_bug.cgi?id=15630 . Ctrl-Left/Right у меня не работает, как и у вас. А вот Alt-Backspace удаляет слово. Проверил на xterm 234-alt2/235-alt1 Полагаю, что тут ещё termcap/terminfo как-то замешены (у меня terminfo-5.6-alt3). Прежде чем вешать пицот одинаковых багов на пицот терминалов, неплохо бы 1) разобраться, какие терминальные последовательность генерят обсуждаемые комбинации клавиш; 2) о каких вообще программах речь; 3) как эти программы настроены реагировать на заданные последовательности. В любом случае это скорее баг этих программ. Так вот, в данном случае все упомянутые терминалы генерят \e[1;5D и \e[1;5C, а aterm - \eOd и \eOc (что упомянуто в /etc/inputrc как "on some exotic xterms"). Впишите в /etc/inputrc "\e[1;5D": backward-word "\e[1;5C": forward-word и будет вам щастье. Перевешиваю на setup, дубликаты сами закрывайте, раз вам это так нравится. Reassign to real maintainer. (In reply to comment #3) > Ctrl-Left/Right у меня не работает, как и у вас. А вот Alt-Backspace удаляет > слово. Проверил на xterm 234-alt2/235-alt1 Да, спасибо, проблема с Alt-Backspace где-то у меня, буду искать. (При этом во всех других терминалах её нет.) > Полагаю, что тут ещё termcap/terminfo как-то замешены (у меня terminfo-5.6-alt3). Поставил terminfo-5.6-alt4, пока так же. (In reply to comment #5) > Так вот, в данном случае все упомянутые терминалы генерят \e[1;5D и \e[1;5C, а > aterm - \eOd и \eOc (что упомянуто в /etc/inputrc как "on some exotic xterms"). Спасибо за объяснение! Экзотические -- это: aterm-1.0.1-alt2, Eterm-0.9.3-alt2, rxvt-unicode-9.02-alt1. *** Bug 15632 has been marked as a duplicate of this bug. *** *** Bug 15630 has been marked as a duplicate of this bug. *** *** Bug 15629 has been marked as a duplicate of this bug. *** генерация разными терминалами разных кодов - не проблема readline, привет (In reply to comment #12) > генерация разными терминалами разных кодов - не проблема readline, привет Если оно хочет на них одинаково реагировать, то это проблема для readline (нужно учесть и те коды, и другие). (In reply to comment #7) > > Ctrl-Left/Right у меня не работает, как и у вас. А вот Alt-Backspace удаляет > > слово. Проверил на xterm 234-alt2/235-alt1 > > Да, спасибо, проблема с Alt-Backspace где-то у меня, буду искать. (При этом во > всех других терминалах её нет.) Да, это было исправлено в app-defaults-0.2.8.4-alt1 (*VT100.Translations). Извините за беспокойство! А вот в vim ситуация обратная - последовательности, выдаваемые xterm, обрабатываются правильно, а то, что выдаёт urxvt, не распознаётся. На самом деле \e[1;5D - это частный случай общей обработки модификаторов, используемой в xterm: In normal mode, i.e., a Sun/PC keyboard when the sunKeyboard resource is false, xterm recognizes function key modifiers which are parameters appended before the final character of the control sequence. Code Modifiers --------------------------------- 2 Shift 3 Alt 4 Shift + Alt 5 Control 6 Shift + Control 7 Alt + Control 8 Shift + Alt + Control --------------------------------- For example, shift-F5 would be sent as CSI 1 5 ; 2 ~ If the alwaysUseMods resource is set, the Meta modifier also is recog- nized, making parameters 9 through 16. (на самом деле просто к значению битовой маски модификаторов добавлена единица, поскольку отсутствующий параметр после CSI считается по умолчанию равным 1, а не 0). В /etc/inputrc от opensuse-11.0 (в пакете aaa_base) есть довольно много вариантов этих кодов, часть внутри $if term=xterm, $if term=rxvt-unicode или прочих вариантов; видимо, наш /etc/inputrc изрядно протух. (In reply to comment #15) > В /etc/inputrc от opensuse-11.0 (в пакете aaa_base) есть довольно много > вариантов этих кодов, часть внутри $if term=xterm, $if term=rxvt-unicode или > прочих вариантов; видимо, наш /etc/inputrc изрядно протух. Там присвоено одно и то же действие для всех модификаторов и их сочетаний, например: "\e[2C": forward-word "\e[1;2C": forward-word "\e[1;3C": forward-word "\e[1;4C": forward-word "\e[5C": forward-word "\e[1;5C": forward-word "\e[1;6C": forward-word "\e[1;7C": forward-word "\e[1;8C": forward-word Имеет ли смысл нам поступить так же? setup-2.2.13-alt1 -> sisyphus: * Thu May 27 2010 Dmitry V. Levin <ldv@altlinux> 2.2.13-alt1 - /etc/profile.d/lang.*sh: do not source i18n files if non-empty LANG is already set (closes: #11814). - /etc/services: updated SANE entries (closes: #13071). - /etc/inputrc: added bindings for xterm ctrl-arrows (closes: #15628). - /etc/profile.d/tmpdir.*sh: do not create ~/tmp directory (closes: #19014). - /etc/filesystems: replaced obsolete content with a comment hinting on the purpose of this file (closes: #21082). - /etc/inputrc: added bindings for history search (closes: #22570). - /etc/securetty: added xvc0 for xen virtual console (closes: #23532). |