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/inputrc
per includerlo
attiva il completamento-ignore-case
Quindi utilizzare ^X ^R
per ricaricare la configurazione.
^X ^R
per 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 [.]inputrc
vs. .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/inputrc
file (si applica a tutto il sistema, la modifica richiede sudo
) e / o un ~/.inputrc
file (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_profile
file specifico dell'utente su OS X (o ~/.bashrc
su Linux), passandoli come singolo argomento al bind
builtin :
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Si noti che i bind
comandi in ~/.bash_profile
/ ~/.bashrc
hanno la precedenza su comandi equivalenti in uno /etc/inputrc
o ~/.inputrc
.
Come suggerito sopra, la configurazione di Readline definita in questo modo non avrà effetto negli script che chiamano read -e
per attivare il supporto di Readline per la lettura dell'input dell'utente.
cd
comandi. 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 inputrc
file sembrano renderlo inutile?
inputrc
, ma li ho creati ~/.inputrc
e 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/inputrc
o~/.inputrc
o un file designato daINPUTRC
sono gli unici posti dove può andare. Inserirlo al prompt di Bash non funzionerà.