O arquivo ~ / .inputrc não está fornecendo corretamente

14

Eu tenho esse arquivo ~ / .inputrc que eu criei para determinadas associações de teclas.

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C":forward-word
"\e[1;5D":backward-word
"\e[5C":forward-word
"\e[5D":backward-word
"\e\e[C":forward-word
"\e\e[D":backward-word

sempre que tento executar source ~/.inputrc, ocorre o seguinte erro:

\ e [1; 5C: palavra direta: comando não encontrado. \ e [1; 5D: palavra inversa: comando não encontrado. \ e [5C: palavra direta: comando não encontrado. \ e [5D: palavra inversa: comando não encontrado. \ e \ e [C: forward-word: comando não encontrado. \ e \ e [D: palavra inversa: comando não encontrado.

Também não funciona quando abro um novo terminal, não recebo o erro, mas minhas combinações de teclas ctrl também não estão funcionando no novo terminal. Eu mesmo criei esse arquivo, pois não tenho acesso root para alterar / etc / inputrc. Alguém pode me ajudar? Obrigado.

Edição: Eu tentei o arquivo com espaço após o sinal de dois pontos (:) também. Isso não funciona. Eu também tentei fazê-lo executável (chmod + x ~ / .inputrc), não funcionou.

Edição: percebi que este procedimento é apenas para 'bash' e estou executando 'tcsh'. Para 'csh', use .bindingsarquivo em vez de .inputrcarquivo e bindkeysintaxe.

rrlamichhane
fonte

Respostas:

12

Para o bash, isso recarregará agora os mapeamentos atualmente definidos

bind -f  ~/.inputrc
Paulo
fonte
De onde obter o bindcomando?
Danijar
bind é um shell embutido. O que você está executando?
Paul
Estou usando o Debian com zsh.
Danijar
isso não funcionou para mim com o bash no RHEL 7. Minhas ligações .inputrc ainda não estão sendo recarregadas depois de executar este comando.
user5359531
@ user5359531, será que suas ligações anteriores não estão "descarregando"? (Se não estiverem definidas explicitamente, permanecerão como estavam antes.) Ou talvez algo mais, como o seu ~ / .inputrc, não $include /etc/inputrc?
precisa saber é o seguinte
6

O .inputrcarquivo não é um arquivo a ser originado. Deve ser levado em consideração automaticamente por bashou outro software usando a biblioteca readline. Se isso não funcionar, adicione um espaço após os dois pontos, por exemplo

"\e[1;5C": forward-word

(Eu sempre vi um espaço neste arquivo de configuração).

vinc17
fonte
1
+1 Ênfase em "outro software usando a biblioteca readline". .inputrcnão é um script de shell; é um readlinearquivo de configuração.
chepner
Na verdade, foi assim que eu o fiz primeiro e mudei para sem espaço apenas para experimentar. Não funciona de qualquer maneira. Eu adicionei isso na edição. Obrigado.
Rrlamichhane 02/09/2014
5

As associações de teclas e o ~/.inputrcarquivo postado em questão são para bash. Para csh(ou tcsh) use um arquivo ~/.bindingse use a seguinte sintaxe.

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

Percebi isso depois de pesquisar no Google.

rrlamichhane
fonte
Por qualquer motivo, meu tsch estava ignorando o arquivo .bindings. Adicionando source ~/.bindingsao meu ~/.cshrcarquivo corrigido isso.
drmuelr