Existe alguma maneira de fazer com que a guia Bash complete maiúsculas e minúsculas?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Estou usando o Mac OS X 10.6
Existe alguma maneira de fazer com que a guia Bash complete maiúsculas e minúsculas?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Estou usando o Mac OS X 10.6
Respostas:
Atualize o texto /etc/inputrc
para incluir
definir conclusão-ignorar-caso em
Em seguida, use ^X ^R
para recarregar a configuração.
^X ^R
para recarregarinputrc
bind "set completion-ignore-case on"
partir da linha de comando; para, creio eu, a sessão terminal só
Reestruturado com o benefício de visão retrospectiva para contrastar as vantagens e desvantagens de usar [.]inputrc
vs .bash_profile
.
Ponta do chapéu para sublinhar_d por sua ajuda.
Nota: A edição da linha de comandos no Bash é fornecida pela biblioteca Readline; personalizá-lo não é trivial, mas vale a pena aprender; seus recursos incluem a capacidade de definir atalhos de teclado personalizados para inserir trechos de texto predefinidos - consulte Edição de linha de comando no Manual de referência do Bash
Para tornar o preenchimento de tabulação persistentemente sem distinção entre maiúsculas e minúsculas no Bash:
Opção A: Se você já possui:
/etc/inputrc
arquivo (aplica-se a todo o sistema, a modificação requer sudo
) e / ou um ~/.inputrc
arquivo (específico do usuário)
e / ou
você planeja personalizar extensivamente a biblioteca readline e / ou deseja tornar as personalizações eficazes para scripts também quando eles chamam read -e
:
Adicionar linha
set completion-ignore-case on
para qualquer arquivo, dependendo se você deseja que a configuração seja efetiva para todos os usuários ou para o usuário atual (crie o arquivo, se necessário).
Um comando relacionado que facilita a conclusão de nomes de arquivos e diretórios é:
set show-all-if-ambiguous on
Isso torna desnecessário pressionar Tab duas vezes quando houver mais de uma correspondência.
Opção B: Como alternativa, você pode adicionar comandos Readline ao seu ~/.bash_profile
arquivo específico do usuário no OS X (ou ~/.bashrc
no Linux), passando-os como um único argumento para o bind
builtin :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Observe que os bind
comandos em ~/.bash_profile
/ ~/.bashrc
têm precedência sobre comandos equivalentes em /etc/inputrc
ou ~/.inputrc
.
Conforme implícito acima, a configuração do Readline definida dessa maneira não terá efeito nos scripts que chamam read -e
para ativar o suporte do Readline para a leitura da entrada do usuário.
cd
comandos. O que resolve esta questão e também me salvará milhares de pressionamentos de tecla. :)
show-all-if-ambiguous
. No entanto, como você diz "como alternativa", há realmente algum benefício em fazer isso via bind
, quando os inputrc
arquivos parecem tornar isso desnecessário?
inputrc
, mas felizmente criei ~/.inputrc
e os adicionei, além de outras diretivas realmente úteis. Acho que estamos assumindo que todos os leitores sabem que /etc/inputrc
afeta outros usuários (a menos que os últimos substituam as configurações afetadas)? Enquanto mencionamos advertências;)
Para evitar alterar a configuração de todos os usuários e evitar permissões de root, use o seguinte:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Em seguida, faça login novamente ou recarregue ~ / .inputrc
/etc/inputrc
ou~/.inputrc
ou um arquivo designado porINPUTRC
é o único lugar para onde ele pode ir. Digitar isso em um prompt do Bash não funcionará.