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/inputrcpara incluir
definir conclusão-ignorar-caso em
Em seguida, use ^X ^Rpara recarregar a configuração.
^X ^Rpara 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 [.]inputrcvs .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/inputrcarquivo (aplica-se a todo o sistema, a modificação requer sudo) e / ou um ~/.inputrcarquivo (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_profilearquivo específico do usuário no OS X (ou ~/.bashrcno Linux), passando-os como um único argumento para o bindbuiltin :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Observe que os bindcomandos em ~/.bash_profile/ ~/.bashrctêm precedência sobre comandos equivalentes em /etc/inputrcou ~/.inputrc.
Conforme implícito acima, a configuração do Readline definida dessa maneira não terá efeito nos scripts que chamam read -epara ativar o suporte do Readline para a leitura da entrada do usuário.
cdcomandos. 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 inputrcarquivos parecem tornar isso desnecessário?
inputrc, mas felizmente criei ~/.inputrce 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/inputrcou~/.inputrcou um arquivo designado porINPUTRCé o único lugar para onde ele pode ir. Digitar isso em um prompt do Bash não funcionará.