C'è un modo per rendere insensibile il caso completo della scheda Bash?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Sto usando Mac OS X 10.6
C'è un modo per rendere insensibile il caso completo della scheda Bash?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Sto usando Mac OS X 10.6
Risposte:
Aggiorna il testo /etc/inputrcper includerlo
attiva il completamento-ignore-case
Quindi utilizzare ^X ^Rper ricaricare la configurazione.
^X ^Rper ricaricareinputrc
bind "set completion-ignore-case on"dalla riga di comando; poiché, credo, solo quella sessione terminale
Ristrutturato con il senno di poi per contrastare i pro ei contro di utilizzare [.]inputrcvs. .bash_profile.
Punta del cappello a underscore_d per il suo aiuto.
Nota: la modifica della riga di comando in Bash è fornita dalla libreria Readline; personalizzarlo non è banale, ma vale la pena imparare; le sue funzionalità includono la possibilità di definire scorciatoie da tastiera personalizzate per l'inserimento di frammenti di testo predefiniti - vedi Modifica della riga di comando nel Manuale di riferimento di Bash
Per rendere persistentemente insensibile al maiuscolo / minuscolo in Bash:
Opzione A: se hai già:
/etc/inputrcfile (si applica a tutto il sistema, la modifica richiede sudo) e / o un ~/.inputrcfile (specifico dell'utente)
e / o
stai pianificando di personalizzare ampiamente la libreria readline e / o vuoi rendere le personalizzazioni efficaci anche per gli script quando chiamano read -e:
Aggiungi linea
set completion-ignore-case on
in entrambi i file, a seconda che si desideri che l'impostazione sia efficace per tutti gli utenti o l' utente corrente (creare il file, se necessario).
Un comando correlato che semplifica il completamento dei nomi di file e directory è:
set show-all-if-ambiguous on
Ciò rende superfluo premere Tab due volte quando è presente più di una corrispondenza.
Opzione B: in alternativa, puoi aggiungere i comandi Readline al tuo ~/.bash_profilefile specifico dell'utente su OS X (o ~/.bashrcsu Linux), passandoli come singolo argomento al bindbuiltin :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Si noti che i bindcomandi in ~/.bash_profile/ ~/.bashrchanno la precedenza su comandi equivalenti in uno /etc/inputrco ~/.inputrc.
Come suggerito sopra, la configurazione di Readline definita in questo modo non avrà effetto negli script che chiamano read -eper attivare il supporto di Readline per la lettura dell'input dell'utente.
cdcomandi. Il che risolve questa domanda e mi farà risparmiare anche migliaia di tasti. :)
show-all-if-ambiguous. Tuttavia, dal momento che dici "in alternativa", ci sono davvero dei vantaggi nel farlo tramite bind, quando i inputrcfile sembrano renderlo inutile?
inputrc, ma li ho creati ~/.inputrce aggiunti felicemente , oltre ad altre direttive davvero utili. Suppongo che stiamo supponendo che tutti i lettori sappiano che /etc/inputrc influisce su altri utenti (a meno che questi non prevalgano sulle impostazioni interessate)? Proprio mentre citiamo avvertimenti;)
Per evitare di modificare la configurazione per tutti gli utenti e per evitare le autorizzazioni di root, utilizzare quanto segue:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Quindi accedere nuovamente o ricaricare ~ / .inputrc
/etc/inputrco~/.inputrco un file designato daINPUTRCsono gli unici posti dove può andare. Inserirlo al prompt di Bash non funzionerà.