2012-04-05 8 views
19

Stavo cercando un tweak per il comando cd in modo che riconosca gli errori di ortografia delle directory e il completamento automatico di nomi di directory simili.Tweaking Bash "cd" e completamento TAB per riconoscere gli errori di ortografia

Al momento, ho impostazioni che riconoscono gli errori di ortografia della directory ma non li completano automaticamente.

Per la correzione directory errore di ortografia ho questo codice in ~/.bashrc:

shopt -s cdspell 

Ora funziona nel modo seguente, supponiamo di avere una directory chiamata "trash"

[email protected]:~$ cd tras 
trash 
[email protected]:~/trash$ cd .. 
[email protected]:~$ cd trasx 
trash 
[email protected]:~/trash$ pwd 
/home/vickey/trash 
[email protected]:~/trash$ 


[email protected]:~$ cd Trash 
trash 
[email protected]:~/trash$ pwd 
/home/vickey/trash 

Ma il problema Ho suppongo di creare una directory chiamata Temp e fare qualcosa come

[email protected]:~$ mkdir Temp 
[email protected]:~$ cd temp 
Temp 
[email protected]:~/Temp$ cd .. 
[email protected]:~$ cd te #and tab here 
test/ textin/ 

non mostra Temp come opzione. È comunque necessario rendere insensibile la distinzione tra maiuscole e minuscole e minuscole?

risposta

24

Il completamento è una funzione di readline.

È possibile abilitare caso completamento insensitive mediante:

1) L'aggiunta al vostro ~/.bashrc:

bind 'set completion-ignore-case on' 

O

2) l'aggiunta al vostro /etc/inputrc:

set completion-ignore-case on 

Note:

  • /etc/inputrc, come @mak commenti, effetti tutte le conchiglie che utilizzano readline, e non solo bash.

  • Questo renderà tutti i completamenti senza distinzione tra maiuscole e minuscole.

+2

'inputrc' viene utilizzato da gusci che fanno uso di' readline' come 'bash',' 'dash' e zsh' (in contrasto con' ksh', 'tcsh', etc.). Se vuoi influenzare il comportamento di tutte le tue shell (non solo 'bash'), devi modificare' inputrc'. Puoi anche modificare localmente '~/.inputrc' in modo da non dover apportare modifiche nel globale'/etc/inputrc'. Altrimenti, ottima risposta! – mak

+1

Questo è rilevante. Lo modificherò, grazie. – ArjunShankar

Problemi correlati