Por que `bind` e` .inputrc` se comportam de maneira diferente?


14

Estou tentando fazer a coisa certa e colocar minhas chaves ~/.inputrc.

No entanto, acontece que eu tenho que mudar

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

para dentro

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

Agora \eOH(nav-block-pos1 vinculado a beginning-of-line) e \eOF(nav-block-end vinculado a end-of-line) são ligações em minha configuração nas quais eu possivelmente nem sempre posso confiar.

Portanto, a principal questão é por que a ligação a num-block-pos1 ( \e[1~) e num-block-end ( \e[4~) funciona com, bindmas não no meu ~/.inputrc?


Editar:

A coisa toda está ficando ainda mais complicada, agora que percebi que \e\C-jsó funciona para o Gnome Terminial (ou provavelmente também para o xterm, quem sabe ...).

Para o meu TTY, tem que ser

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

Então, várias VTs têm implementações diferentes de como interpretar chaves ou o quê?


Isso está documentado no manual GNU Readline User Interface , seção 1.3. A keymapopção é usada para definir que tipo de representação de chave é usada nas definições de ligações de teclas. Informações relevantes: superuser.com/questions/286781/… cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9 wiki.archlinux.org/index.php/Readline
Ярослав Рахматуллин

@ ЯрославРахматуллин Como exatamente isso é relevante para a diferença de comportamento entre usar binde usar inputrcpara a ligação real. Eles não devem usar as mesmas configurações?

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.