Problema com o código-fonte ~ / .inputrc e ligação Control-delete para um comando

0

Para pesquisar meu ~/.inputrc , tentei C-x C-c e bind -f ~/.inputrc . Eu estou sem ideias, mesmo depois de ler a seção bash man em bind .

Eu tenho "\C-Rubout": backward-kill-word no meu ~/.inputrc . Mas quando eu consultar o bash com bind -q backward-kill-word , não recebo a saída esperada:

$ bind -q backward-kill-word
backward-kill-word can be invoked via "\C-rubout", "\e\C-h", "\e\C-?".

Acho que a capitalização errada em rubout pode ser um problema, mas não importa como eu mudo meu arquivo ~/.inputrc , não consigo fazer isso funcionar !!

Eu estou lutando para encontrar um bom recurso para me ajudar a aprender como me tornar menos incompetente na bind parte do bash ... Os resultados que estou recebendo parecem errados, mas eu sei que é melhor do que estar confiante sobre que até eu saber mais sobre essas coisas.

Li o manual do gnu e testei usando \b , \d e 7 em vez de Rubout , mas nenhum deles funcionou. Aquele do manual do gnu ( aqui ) foi bem legal.

    
por Ari Sweedler 11.03.2018 / 03:42

1 resposta

0

A ligação padrão não estava presente no terminal. Eu precisava adicionar "\C-x\C-r": re-read-init-file ao meu ~/.inputrc .

Reler um arquivo init não fará com que os comandos atualmente limitados sejam removidos . Eu estava errado ao supor que excluir uma linha do meu ~/.inputrc e chamar o bind -f ~/.inputrc iria desvincular essa ligação. Portanto, este comando realmente funciona ao reler meu arquivo init.

Eu estava solucionando problemas. Como meu básico não funcionava, todo o meu conhecimento era instável. Eu não estava re-sourcing meu arquivo readline, eu estava relendo. Esta é uma diferença fundamental

Além disso, vincular um comando várias vezes no mesmo arquivo parece descartar tudo menos a última definição. Todos os meus problemas com a solução de problemas me levaram a desistir.

Por fim, não sei se há unix-word-rubout e backward-kill-word . Eles são dois comandos distintos, mas eles agem da mesma forma no meu terminal.

Percebi que poderia descobrir como representar delete observando um comando que estava prestes a ser excluído.

$ bind -q backward-kill-word
backward-kill-word can be invoked via "\e\C-h", "\e\C-?".

Meu terminal converte a exclusão diferentemente de outros terminais, eu acho ... Eu pensei que ? era um marcador para "Não consigo representar isso", mas isso é ! Eu realmente só precisava usar um literal ? , código ASCII 63.

De qualquer forma, quando coloquei "\C-?": unix-word-rubout no meu ~/.inputrc , tudo funcionou perfeitamente:)

    
por 26.03.2018 / 12:35

Tags