Frage Kann ich die automatische Vervollständigung von Tabulatorzeichen im Terminal terminieren?


Das Ubuntu-Terminal verwendet die Groß- und Kleinschreibung automatisch, wie ich es für Linux erwarten würde.

Aber ich denke, es wäre oft bequemer, eine Groß- / Kleinschreibung zu verwenden, um zu vermeiden, dass Sie beim Starten eines Namens genau sein müssen, und wahrscheinlich die zusätzlichen Fehlalarme wert wären. Ist es möglich, dieses Verhalten zu ändern?


112
2017-12-12 05:19


Ursprung




Antworten:


Öffne ein Terminal, renne

# If ~./inputrc doesn't exist yet, first include the original /etc/inputrc so we don't override it
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi

# Add option to ~/.inputrc to enable case-insensitive tab completion
echo 'set completion-ignore-case On' >> ~/.inputrc

Starten Sie eine neue Shell / ein neues Terminal.

Um diese Änderung für alle Benutzer vorzunehmen, bearbeiten Sie sie /etc/inputrc

Für Details, siehe man bash . Ja, es ist eine lange Seite, aber bash ist ein etwas komplexes Programm, und wenn Sie nur diese Seite nach "case-insensitive" durchsuchen wollen, gehen Sie zum entsprechenden Abschnitt. Die Leute lernen normalerweise eine Option zu einer Zeit oder ein Bash-Skript zu einer Zeit und es dauert lange, alle Nuancen zu meistern. Ihr Interesse kann variieren.


135
2017-12-12 05:48



Vielen Dank. Ich schätze die benutzerspezifische / nicht-Admin-freundliche Lösung. Die Echo-Linie scheint zu funktionieren, aber jetzt scheint ich die Fähigkeit verloren zu haben, Strg-Links / Rechts zu verwenden, um den Cursor zu bewegen. Auch, würde >> sicherer sein als >? - mwfearnley
Im Allgemeinen >> wird sicherer sein, mein Fehler, ich nahm an, dass Sie kein / .inputrc hatten. Ich setze auch noclobber =) Bit sicher, warum deine Pfeiltasten nicht funktionieren, das kann ich nicht replizieren. Sie können ~ / .inputrc entfernen und eine neue Shell starten. - Panther
Ja, es funktioniert wieder wenn ich es entferne .. Laut linuxfromscratch.org/blfs/view/5.1/postlfs/inputrc.html könnte der neue inputrc den globalen ersetzen? - mwfearnley
Heilige Scheiße, ich habe das in / etc / inputrc kopiert und ich kann nicht mehr "i" tippen und wenn ich "e" schreibe, spammt es einfach "ssssssssss [..]" in die Konsole .. besser die Lösung von @ emtin4 - Luca Steeb
@LucaSteeb Ich traf das auch, aber dann erkannte, dass dieser ganze Block nicht in Ihre .inputrc gelegt werden sollte, sondern einmal getippt wurde. Nur $include /etc/inputrc und set completion-ignore-case on sollte in Ihrer ~ ..inputrc Datei sein. - Chris


Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein:

echo set completion-ignore-case on | sudo tee -a /etc/inputrc

Passwort eingeben. Terminal neu starten.

Wenn Sie in einem Fall die Groß- / Kleinschreibung entfernen möchten, bearbeiten Sie einfach die Datei / etc / inputrc, indem Sie die Datei entfernen set completion-ignore-case Linie.

Das ist alles.


41
2017-12-12 05:45



OK, das habe ich für dich klargestellt. Es dauert eine Weile, um etwas über Bash zu lernen, aber erforsche, lese und frage weiter. linuxcommand.org ist ein beliebter Start;) - Panther
Falls es mehr als einen Benutzer gibt, ändert sich dies für alle, was das gewünschte Verhalten sein kann oder auch nicht - Walter Tross
bei weitem die einfachste und simpelste Antwort hier - workabyte
einfache und klare Antwort - tinybyte


Ich weiß, dass diese Frage sehr alt ist, aber wenn ich etwas nicht vermisse, denke ich, dass ich eine super einfache Lösung habe, wenn Sie bash verwenden.

echo "bind 'set completion-ignore-case on'" >> ~/.bashrc

Oder fügen Sie einfach die Zeile mit Ihrem bevorzugten Texteditor hinzu. Starten Sie Ihre Bash-Sitzung neu und genießen Sie.


9
2018-01-31 02:41



Nun, du verpasst etwas: ~/.inputrc wird gelesen von readline, was Bash verwendet, um diese Vervollständigung bereitzustellen. Readline wird auch von anderen Programmen verwendet. ~/.inputrcwie vorgeschlagen die akzeptierte Antwort wäre besser. - muru
Danke für Ihren Vorschlag, es bringt mir ein wenig mehr bei, aber ich muss sagen, dass es nicht einfacher erscheint als das, das ich akzeptiere, das nur eine zusätzliche Zeile verwendet, um sicherzustellen, dass die neue Datei nicht das alte aufhebt. - mwfearnley
perfekt. Nun, das einzige, an das man sich erinnern kann ist bind 'set completion-ignore-case on' sollte in neue Zeile gehen .bashrc - Vishrant