Passen Sie die tabulatorvervollständigung in der shell
Diese vielleicht einen besseren Namen als "custom tab completion", aber hier ist das Szenario:
In der Regel, wenn ich in die Kommandozeile und ich einen Befehl eingeben, gefolgt mit {TAB} zweimal, bekomme ich eine Liste aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis. Zum Beispiel:
[user@host tmp]$ cat <TAB><TAB>
chromatron2.exe Fedora-16-i686-Live-Desktop.iso isolate.py
favicon.ico foo.exe James_Gosling_Interview.mp3
Merkte ich allerdings, daß mindestens ein Programm irgendwie filtern Sie diese Liste: wine
. Bedenken Sie:
[user@host tmp]$ wine <TAB><TAB>
chromatron2.exe foo.exe
Es effektiv filtern die Ergebnisse zu *.exe
.
Denken, es könnte eine Art von wrapper-Skript verantwortlich für die Filterung, eine Tat, ein which
und file
eine es stellt sich heraus wine
ist nicht ein Skript, sondern eine ausführbare Datei.
Nun, ich weiß nicht, ob dieser "filter" ist irgendwie codiert in das Programm selbst, oder anders angegeben, die während des Standard-Wein-Installation, so dass ich nicht sicher bin, ob diese Frage eher angebracht ist stackoverflow oder superuser, also ich bin Kreuze meine Finger und werfen Sie es hier. Ich entschuldige mich, wenn ich falsch geraten. (Auch ich habe ein paar ähnliche Fragen, aber die meisten waren unwichtig oder beteiligt Bearbeiten der shell-Konfiguration.)
Also meine Frage ist, wie wird diese "Filterung" durchgeführt? Vielen Dank im Voraus.
- Registerkarte Fertigstellung die shell, die bestimmten, welche shell benutzt du (
echo $SHELL
) - Sorry, ich bin mit der bash. Edit: 4.2.24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie wahrscheinlich eine Datei auf Ihrem system, die sogenannte
/etc/bash_completion
die voll von Funktionen undcomplete
- Befehlen, die dieses Verhalten. Die Datei wird entweder durch eine Ihrer shell-Startdateien, wie~/.bashrc
.Kann es auch ein Verzeichnis namens
/etc/bash_completion.d
enthält einzelne Dateien mit mehr Funktionen Abschluss. Diese Dateien stammen von/etc/bash_completion
.Dies ist, was die
wine
Fertigstellung Befehl wirkt wie aus den/etc/bash_completion
auf meinem system:Diesen Satz von Dateien, ist zu einem großen Teil in der Trägerschaft der Bash-Completion-Projekt.
Können Sie einen Blick auf Programmierbare Vervollständigung im bash-manual, um zu verstehen, wie es funktioniert.
Ich weiß, das ist alt, aber ich war auf der Suche, etwas ähnliches zu tun mit einem Skript von meiner eigenen.
Können Sie spielen, um mit einem Beispiel, den ich hier gemacht:
http://runnable.com/Uug-FAUPXc4hAADF/autocomplete-for-bash
Eingefügten code von oben:
zlogin
.