Configurações de .inputrc vs .bashrc

9

Notei que poucas configurações .bashrce .inputrcarquivos têm a mesma aparência ou são semelhantes, como:

shopt -s nocaseglobvs set completion-ignore-case
export HISTSIZEvs set history-size
export HISTFILESIZEvsset history-size

As .inputrcconfigurações também afetam a conclusão e o tamanho do histórico no shell python (se executado dentro do terminal)?

É HISTSIZElimitado por history-sizeou substitui-o?

um demais
fonte

Respostas:

10

Do bashmanual:

history-size (não definido)

Defina o número máximo de entradas do histórico salvas na lista de histórico. Se definido como zero, qualquer entrada do histórico existente será excluída e nenhuma nova entrada será salva. Se definido como um valor menor que zero, o número de entradas do histórico não será limitado. Por padrão, o número de entradas do histórico é definido como o valor da HISTSIZE variável do shell. Se for feita uma tentativa de definir history-sizeum valor não numérico, o número máximo de entradas do histórico será definido como 500.

Então, se você definir HISTSIZE, não defina history-sizeem .inputrc. A biblioteca readline (para a qual .inputrcé a configuração) não se importa com o que você define HISTFILESIZE. HISTFILESIZEé o tamanho em que o arquivo de histórico ( $HISTFILE) é truncado quando uma bashsessão de shell é encerrada (por bash, e não pela biblioteca readline).

De acordo com a pergunta " Existe uma maneira de definir o tamanho da lista do histórico no bash para mais de 5000 linhas? ", A history-sizeconfiguração da biblioteca readline parece substituir a HISTSIZEconfiguração no shell, se ambas estiverem definidas.

A nocaseglobopção de shell não é o mesmo que a completion-ignore-caseconfiguração no .inputrc. A opção shell refere-se ao comportamento de globbing do nome do arquivo, enquanto a configuração da linha de leitura tem a ver com a conclusão do nome do arquivo (quando você pressiona Tabna linha de comando).

As .inputrcconfigurações afetam todos os programas que usam a biblioteca readline, não apenas bash.

bashpode ser iniciado sem o suporte da linha de leitura chamando-o com o --noeditingsinalizador


Note-se que tanto HISTSIZEe HISTFILESIZEsão variáveis do shell , e não variáveis de ambiente e, portanto, não precisa ser exportado.

Kusalananda
fonte