Como faço para recarregar o .inputrc?

84

fundo

Eu ouvi que o Leia a linha módulo está lendo ~/.inputrc e é assim que muda o comportamento dos pressionamentos de teclas em programas como o bash.

Questão

Como posso recarregar isso após a edição para ver o comportamento alterado sem reiniciar meu programa de terminal?

Captain Lepton
fonte
8
fundo (não errado) .
Dennis Williamson
3
Eu vim aqui procurando como carregar .inputrc com um comando. superuser.com/q/419670/56544
dfrankow
1
@CaptainLepton Eu vi isso. O terminal não é o mesmo que o shell. Fazendo exec bash em uma sessão de Bash substituirá a sessão de shell atual por uma nova sessão de Bash. xterm é um terminal.
Kusalananda
1
@ Kusalananda Obrigado pelo esclarecimento. Isso é uma boa ideia. Você poderia descrever a execução do & gt; exec bash como executar um novo shell no terminal atual ao invés de reiniciar o bash, como você está substituindo o seu executável anterior?
Captain Lepton
1
Sim, não há como "reiniciar" a sessão atual do shell. Isto é 1 maneira de fazer isso. Usando a solução que @maxelost deu é outra.
Kusalananda

Respostas:

76

Por padrão, C-x C-r é obrigado a re-read-init-file.

Veja o Manual de Referência Bash para explicação.

maxelost
fonte
4
Isso não funciona para mim. Eu tentei um mapeamento diferente no arquivo .inputrc e também sem sorte: "\ eX \ eR": re-read-init-file Alguma sugestão?
Captain Lepton
6
@Captain Na verdade, sim, exceto que não Claro pressionamentos de tecla que foram excluídos enquanto isso. Se você, por exemplo adicione alguns, eles são carregados. Sua única solução para estes é um novo bash -l (shell que se comporta como um shell de login) recém-inicializado.
Daniel Beck
Eu estava editando /etc/inputrc mas eu tinha um quase vazio ~/.inputrc que estava impedindo o de /etc/ de ser usado. Removendo ~/.inputrc fez com que ele lesse /etc/inputrc e tornar minhas alterações ativas.
Malvineous
1
@ Malvineous eu fui pego por isso antes .. se você adicionar $include /etc/inputrc para o topo ~/.inputrc, evita esse problema.
mwfearnley
45

Você também pode recarregar novas entradas da linha de comando usando bind -f ~/.inputrc. Isso carregará as entradas em .inputrc. Note que ele apenas faz uma carga, não um "recarregamento" - portanto, ele não redefine nenhuma linha que você tenha removido do .inputrc.

Para testar rapidamente a partir de um slate limpo, basta executar bash em seguida, trabalhe dentro desse novo shell aninhado (ou inicie um novo terminal).

studgeek
fonte
10

Em .inputrc primeiro escolha sua ligação e depois ligar o re-read-init-file função:

set editing-mode vi
"\C-x\C-r": re-read-init-file

pressione CTRL e x , solte ambos, pressione CTRL e r .

Antonio Bardazzi
fonte