12 Stimmen

Bash-Vervollständigung für bestimmte Arten von Dateien in einem speziellen Verzeichnis

Ich habe eine Liste von Unison-Profilen, die in ~/.unison/*.prf .

Ich hätte gerne eine Bash-Vervollständigung, so dass ich bei der Eingabe von unison o unison-gtk und drücken Sie die Tabulatortaste, wird die Liste der .prf Dateien aus diesem Ordner ohne die .prf Teil.

Vielleicht würde ein Beispiel mehr Klarheit bringen:

$ ls ~/.unison/*.prf
default.prf dot-mozilla.prf to-desktop.prf

$ cd  ~  # just to show you don't have to be in the ~/.unison folder
$ unison to<tab>
$ unison to-desktop

Ich habe vor, dies auch für ein anderes Werkzeug zu benötigen, daher wäre es praktisch, wenn es Teile gäbe, die wiederverwendet werden könnten.

16voto

vezult Punkte 5065

Wenn Sie debian/ubuntu oder möglicherweise andere GNU/Linux-Distributionen verwenden, sollten Sie Beispiele für diese Art der Vervollständigung in Ihrem /etc/bash_completion.d/ Verzeichnis finden. Hier ist ein Beispiel dafür, wie Sie ein Vervollständigungsskript für Unison einrichten können:

have unison &&
_unison_show()
{
        local cur

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}
        COMPREPLY=($( compgen -W "$(for x in ~/.unison/*.prf; do echo $(basename ${x%.prf}); done)" -- $cur ) )
}
complete -F _unison_show unison

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X