Bashs Tab-Vervollständigung unabhängig von Groß- und Kleinschreibung machen [duplizieren]

40

Mögliches Duplikat:
Groß- und Kleinschreibung wird in Bash nicht berücksichtigt

Gibt es eine Möglichkeit, die Tab-Vervollständigung in der Bash-Groß- / Kleinschreibung zu ändern? Wenn ich eine Datei mit dem Namen Zum Beispiel habe Hello.txtund versuchen, Tab-Vervollständigung durch Eingabe hegefolgt von Tabes wird nicht funktionieren. Ich müsste es durch Eingabe von He(beachten Sie die Großbuchstaben H) und tab-vervollständigen Tab. Gibt es eine Möglichkeit, Bash einzurichten, damit ich die Groß- / Kleinschreibung nicht beibehalten muss, wenn ich sie eingebe und versuche, sie durch Tabulatoren zu vervollständigen?

Wuffers
quelle
Ich bin froh zu wissen, dass dies unter Linux funktioniert, da die andere Frage OSX-spezifisch ist, @sathya
earthmeLon

Antworten:

55

Erstellen Sie eine Datei mit dem Namen .inputrcin Ihrem Ausgangsverzeichnis und platzieren Sie diese Zeile darin:

set completion-ignore-case on

Öffnen Sie dann eine neue Shell und probieren Sie es aus. Wenn / etc / inputrc auf Ihrem System vorhanden ist, sollten Sie im Allgemeinen auch die Zeile hinzufügen $include /etc/inputrc. Es gibt jedoch keine Möglichkeit, diese Bedingung zu erfüllen. Fügen Sie sie daher nur hinzu, wenn diese Datei vorhanden ist.

Gordon Davisson
quelle
14
Dadurch wird verhindert, dass Bash die /etc/inputrcStandardeinstellungen liest und beispielsweise die Navigation mit Strg-Links / Rechts unterbricht. Stellen Sie sicher, $include /etc/inputrcin Ihrem hinzuzufügen ~/.inputrc.
Nicolas Marchildon
1
Sie können diese Änderung auch mit bind -f ~ / .inputrc erneut laden.
Bischof
2
Ich werde @NicolasMarchildon Kommentar in die Antwort integrieren, weil es dort sein sollte
theEpsilon
Seltsamerweise funktioniert es bei mir nicht. Hier ist meine ~/.inputrc: pastebin.com/WVQmrNZu
Alexey Petrenko
@ AlexeyPetrenko Das sieht für mich ok aus. Gibt es unsichtbare Zeichen in der Datei, die die Dinge durcheinander bringen? Versuchen Sie es mit LC_ALL=C cat -vet ~/.inputrc- Sie sollten ein "$" am Ende jeder Zeile sehen, aber nichts anderes lustig. Versuchen Sie auch bind -v, zu sehen, was für die completion-ignore-caseVariable angezeigt wird. Schließlich gibt es etwas in einer anderen Shell-Init-Datei, das es möglicherweise ändert?
Gordon Davisson