Почему `bind` и`.inputrc` ведут себя по-разному?
Я пытаюсь сделать правильные вещи и поставить свои привязки клавиш в ~/.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 имеют разные реализации того, как интерпретировать ключи или как?
1 ответ
Ваш эмулятор терминала может работать в одном из двух режимов: режим приложения и режим курсора (см. http://homes.mpimf-heidelberg.mpg.de/~rohm/computing/mpimf/notes/terminal.html). Это зависит от того, в каком режиме работает ваше конкретное приложение, которое определяет, какую escape-последовательность вам нужно отправить.