Mam niestandardowe narzędzie konsoli cooltool
z listą opcji
fooOption
barOption
Co powinienem zrobić, aby móc automatycznie uzupełnić opcje bash, naciskając tab
klawisz?
Mam na myśli wpisany przez użytkownika
$ ./cooltool foo_
następnie wciśnięty tab
. I wtedy
$ ./cooltool fooOption _
pojawiło się.
Odpowiedzi:
Napisz skrypt zakończenia bash dla
cooltool
. Pakiet bash-complete zawiera skrypty dla wielu popularnych programów, których możesz użyć jako przykładów.źródło
Najprostszym sposobem jest dodanie następujących elementów do pliku .bashrc.
Za każdym razem, gdy piszesz
cooltool f[TAB][TAB]
,_cooltool()
funkcja jest wywoływana. Sprawdza, jakie jest twoje obecne słowo częściowe, a następnie określacompgen
, które opcje pasują. Są one przechowywane w tablicy o nazwie,COMPREPLY
która jest następnie wyświetlana. Patrzećman complete
iman compgen
szczegóły.Aby uzyskać fajny samouczek, sprawdź: Pisanie własnej funkcji uzupełniania bash
źródło
Możesz przyjrzeć się bliżej swojemu katalogowi /etc/bash_completion.d w systemie.
Powinieneś także przeczytać to wprowadzenie . Druga część wprowadzenia jest jeden trzeba.
źródło
Oto kod używany do ukończenia git bash
źródło
Oprócz odpowiedzi dogbane możesz także:
jeśli po prostu chcesz dopasować listę słów od początku łańcucha. Wygląda na to, że pełna i kompgenowa udostępnia większość opcji. Zauważyłem tylko dopasowanie „początku łańcucha” w poleceniach, których używam, więc uważam, że fajnie jest robić inne rzeczy w funkcji _cooltool, takie jak:
dopasować w dowolnym miejscu w nazwie opcji.
źródło