Mam wiele aliasów, które utworzyłem w swoim .bash_aliases
pliku, i są one bardzo przydatne, więc jeśli chcę wszystkie informacje o pakiecie, robię coś takiego:
allinfo software-center
I to odpowiada:
apt-cache show software-center
Ponieważ alias jest ustawiony jako:
alias allinfo='apt-cache show'
Ale jest jedna wada tego, że obecnie nie jestem w stanie wykonać autouzupełniania, TABgdy używam allinfo
zamiast rzeczywistego polecenia. Zastanawiałem się więc, czy istnieje sposób na przezwyciężenie tej wady i sprawienie, aby robienie allinfo software-ce[TAB]
działało tak samo, jak wtedy, gdy używasz go z rzeczywistym poleceniem, a nie tylko tworząc dużą przestrzeń tabulacji?
Używam gnome-terminal
.
Informacje o systemie operacyjnym:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.04
Release: 15.04
Codename: vivid
Informacje o paczce:
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
Odpowiedzi:
Świetne pytanie! Jeśli twoje
allinfo
polecenie było takie samo, jak tylkoapt-cache
(tj. Bezshow
), moglibyśmy spojrzeć na zakończenieapt-cache
i zastosować to do twojegoallinfo
aliasu.Jednak chcesz podzbiór
apt-cache
ukończenia, więc mamy trochę więcej do zrobienia.Jeśli spojrzymy w definicji zakończenia na
apt-cache
- w/usr/share/bash-completion/completions/apt-cache
, zobaczymy, że dlashow
podkomendy użyto następujących elementów :- to tylko ustawienie
COMPREPLY
zmiennej na listę pasujących pakietów.Możemy więc pożyczyć to i napisać własną funkcję i powiązać ją z aliasem allinfo:
Jeśli dodasz tę frustrację do
.bashrc
pliku, ukończenia powinny działać zgodnie z oczekiwaniami.źródło
Nie mam pojęcia
bash
, ale działa zzsh
niektórymi wtyczkamiZainstaluj powłokę Z za pomocą
i ustaw Z-shell jako standardową powłokę
i uruchom nowy terminal, aby korzystać z powłoki Z.
Dodaj antygen v1
I skonfiguruj
Niektóre obrazy (monit to nojhan / liquidprompt)
źródło
cd
i robi ścieżkę pliku. Jak mogę go odczytać.bash_aliases
?antigen: command not found
konfigurację.