Почему `bind` и` .inputrc` ведут себя по-разному?


14

Я пытаюсь сделать правильную вещь и поместить свои привязки клавиш в ~/.inputrc.

Тем не менее, оказывается, что я должен изменить

bind '"\e\C-j":"\e[1~quiet \e[4~\n"'

в

"\e\C-j": "\eOHquiet \eOF\n"

Теперь \eOH(привязка nav-block-pos1 к beginning-of-line) и \eOF( привязка nav-block-end к end-of-line) сами являются привязками в моей конфигурации, на которые я, возможно, не всегда могу положиться.

Поэтому основной вопрос заключается в том, почему привязка к num-block-pos1 ( \e[1~) и num-block-end ( \e[4~) работает, bindно не в моем ~/.inputrc?


Редактировать:

Все становится еще сложнее, теперь, когда я понял, что это \e\C-jработает только для Gnome Terminial (или, возможно, xterm, кто знает ...).

Для моего TTY это должно быть

"\e\C-m": "\e[1~_quiet \e[4~\n"

Так что разные VT имеют разные реализации интерпретации ключей или как?


Это описано в руководстве по пользовательскому интерфейсу GNU Readline , раздел 1.3. keymapОпция используются для набора какого рода ключ представления используется в ключевых определениях переплетов. Соответствующая информация: superuser.com/questions/286781/… cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9 wiki.archlinux.org/index.php/Readline
Ярослав Рахматуллин

@ ЯрославРахматуллин Как именно это относится к разнице в поведении между использованием bindи использованием inputrcдля фактической привязки. Разве они не должны использовать те же настройки?

Ответы:


2

Ваш эмулятор терминала может работать в одном из двух режимов: режим приложения и режим курсора (см. Http://homes.mpimf-heidelberg.mpg.de/%7Erohm/computing/mpimf/notes/terminal.html ). Это зависит от того, в каком режиме работает ваше конкретное приложение, которое определяет, какую escape-последовательность вам нужно отправить.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.