pokoloruj bash_completion

9

Kiedy piszę, grepa następnie naciśnij TABdwukrotnie, bash_completionwyświetli się lista plików i katalogów w bieżącym katalogu. Uzupełni także nazwy plików, gdy wpisuję pierwszą literę. To wszystko jest bardzo miłe, jedynym problemem jest to, że gdy katalog zawiera wiele plików i podkatalogów, może być dość chaotyczny i zdezorganizowany.

Bardzo by pomógł, gdyby bash_completionmógł przynajmniej pokolorować katalogi inaczej, podobnie jak to ls -lArobi.

czy to możliwe?

EDYTOWAĆ:

tak wygląda mój przykładowy bash_completionplik konfiguracyjny:

if [[ ${cur} == -* ]] ; then
    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
    return 0

else
    _filedir
fi
Martin Vegter
źródło
1
Nie wiem, czy jest to możliwe w, bashale jest to domyślne zachowanie w zsh.
terdon
1
w przypadku, gdy nie jest to oczywiste, szukam rozwiązania dlabash
Martin Vegter
Jaki plik wyświetlasz?
terdon

Odpowiedzi:

7

W obecnej wersji Bash nie ma takiej funkcji po wyjęciu z pudełka, możesz to zrobić za pomocą zsh, jest ona domyślnie dostępna.

Nazywa się jedno z narzędzi związanych z ukończeniem compgen. Możesz to zrobić, aby wyświetlać poprawnie pokolorowane polecenia, ale jest to hack i nie jest to praktycznie przydatne.

$ compgen -W "$(ls --color=always *)"

To poprawnie wyświetli listę plików pokolorowanych, ale pobiera kolor ls, więc nie zastanawiałbym się nad tym rodzimym kolorem auto_completion.

Bibliografia

slm
źródło
proszę zobaczyć moją edycję. Nie mam żadnych lsw moich bash_completionplikach konfiguracyjnych. Wygląda na to, że istnieje funkcja, _filedirktóra wyświetla listę plików.
Martin Vegter