Ich habe viele Aliase, die ich in meiner .bash_aliases
Datei erstellt habe , und sie sind sehr nützlich. Wenn ich also alle Informationen zu einem Paket haben möchte, mache ich etwas wie:
allinfo software-center
Und das entspricht:
apt-cache show software-center
Da der Alias wie folgt festgelegt ist:
alias allinfo='apt-cache show'
Es gibt jedoch einen Nachteil, den ich derzeit nicht automatisch vervollständigen kann, TABwenn ich allinfo
anstelle des eigentlichen Befehls verwende. Ich habe mich also gefragt, ob es eine Möglichkeit gibt, diesen Nachteil zu überwinden und ihn so zu gestalten, dass das Ausführen allinfo software-ce[TAB]
genauso funktioniert wie bei Verwendung des eigentlichen Befehls und nicht nur das Erstellen eines großen Tabulators.
Ich benutze gnome-terminal
.
Betriebssysteminformationen:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Paketinformationen:
gnome-terminal:
Installed: 3.14.2-0ubuntu3
Candidate: 3.14.2-0ubuntu3
Version table:
*** 3.14.2-0ubuntu3 0
500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
100 /var/lib/dpkg/status
Antworten:
Gute Frage! Wenn Ihr
allinfo
Befehl derselbe wie nurapt-cache
war (dh ohne denshow
), könnten wir die Fertigstellung prüfenapt-cache
und diesen auf Ihrenallinfo
Alias anwenden .Sie möchten jedoch eine Teilmenge der
apt-cache
Fertigstellung, sodass wir etwas mehr Arbeit zu erledigen haben.Wenn wir in der Vervollständigungsdefinition nach
apt-cache
- in suchen/usr/share/bash-completion/completions/apt-cache
, sehen wir, dass für denshow
Unterbefehl Folgendes verwendet wird :- Hiermit wird lediglich die
COMPREPLY
Variable auf die Liste der übereinstimmenden Pakete gesetzt.Wir können dies also ausleihen, unsere eigene Funktion schreiben und sie an Ihren allinfo-Alias binden:
Wenn Sie diese Datei zu Ihrer
.bashrc
Datei hinzufügen, sollten die Vervollständigungen wie erwartet funktionieren.quelle
Ich habe keine Ahnung für
bash
, aber es funktioniert mitzsh
und einigen PluginsInstallieren Sie die Z-Shell mit
und legen Sie die Z-Shell als Standard-Shell fest
und starten Sie ein neues Terminal, um die Z-Shell zu verwenden
Fügen Sie Antigen v1 hinzu
Und konfigurieren
Einige Bilder (Eingabeaufforderung ist nojhan / liquidprompt)
quelle
cd
und den Dateipfad mache. Wie kann ich die.bash_aliases
Datei lesen ?antigen: command not found
Konfiguration erhalten.