Wenn ich tippe grep
und dann TABzweimal drücke , bash_completion
werden Dateien und Verzeichnisse im aktuellen Verzeichnis aufgelistet. Es werden auch Dateinamen vervollständigt, wenn ich den Anfangsbuchstaben eingebe. Das ist alles sehr schön, das einzige Problem ist, dass das Verzeichnis, wenn es viele Dateien und Unterverzeichnisse enthält, ziemlich chaotisch und unorganisiert sein kann.
Es wäre sehr hilfreich, wenn bash_completion
zumindest Verzeichnisse anders gefärbt werden könnten, ähnlich wie dies der ls -lA
Fall ist.
Ist das möglich?
BEARBEITEN:
So bash_completion
sieht meine Beispielkonfigurationsdatei aus:
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
else
_filedir
fi
bash
aber es ist das Standardverhalten inzsh
.bash
Antworten:
In der aktuellen Version von Bash gibt es keine solche sofort einsatzbereite Funktion. Sie können dies verwenden
zsh
, sie ist standardmäßig vorhanden.Eines der Tools für die Fertigstellung wird aufgerufen
compgen
. Sie können es finagle, um Befehle korrekt koloriert anzuzeigen, aber dies ist ein Hack und nicht so praktisch nützlich.Dadurch werden die kolorierten Dateien korrekt aufgelistet, aber es wird die Farbe von erhalten
ls
, sodass ich diese native Färbung nicht in Betracht ziehen würdeauto_completion
.Verweise
quelle
ls
in meinenbash_completion
Konfigurationsdateien. Anscheinend gibt es eine Funktion,_filedir
die Dateien auflistet.