🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.os.linux.newbie
3 messages
3 total messages Started by ama Sat, 11 Dec 2010 18:22
bash i uzupełnianie linii poleceń
#138766
Author: ama
Date: Sat, 11 Dec 2010 18:22
25 lines
2099 bytes
ostatnio odkryłem, że argumenty polecenia wstawiane są przez TAB według 
jakiegoś tajemniczego klucza. distro to ubuntu, które jak widać staje 
się chyba coraz bardziej automagiczne


chodzi o to, że np. jeśli stoję w katalogu, w którym znajduje się 
jakiśplik.ext, wpisanie mplayer TAB nie doda mi jako argumentu tego 
właśnie pliku, jeśli .ext jest teoretycznie nieobsługiwanym formatem 
mplayera.

może na przykładzie: mam folder z plik.m4b. jest to plik o względnie 
"nowym" rozszerzeniu, który jednakże bardzo ładnie odtwarza się w 
mplayerze (to chyba jest audiobook w formacie pod ipoda). i teraz: plik 
niby da się otworzyć, ale wpisanie "mplayer TAB TAB" powoduje, że 
powłoka nie jest w stanie mi uzupełnić nazwy plik.m4b.

inne polecenie, np. "cat TAB" od razu dokłada plik.m4b. zmiana 
rozszerzenia .m4b na mp3 też powoduje, że TAB dokleja mi plik za 
mplayerem. jeśli w katalogu będą zarówno pliki .m4b jak i .mp3 (w 
większej ilości), to "mplayer TAB" wyświetla mi tylko te .mp3, a .m4b 
ignoruje.

wnioskuję z tego, że gdzieś jest jakiś "spis dozwolonych rozszerzeń" dla 
danego programu, który mi tu miesza. pytanie: gdzie on siedzi, i jak to 
można zmodyfikować / wyłączyć?
Re: bash i uzupełnianie linii poleceń
#138767
Author: Mirosław Zalewski
Date: Sat, 11 Dec 2010 19:11
36 lines
2688 bytes
grudzień roku pamiętnego 2010, prawdopodobnie 11. Wielka mądrość na
czytelników alt.pl.comp.os.linux.newbie spłynęła, gdy tako rzekł(a) ama:

> ostatnio odkryłem, że argumenty polecenia wstawiane są przez TAB
> według jakiegoś tajemniczego klucza. distro to ubuntu, które jak
> widać staje się chyba coraz bardziej automagiczne

Ten „tajemniczy klucz” to bash-completion i jeśli wierzyć
Debianowemu changelogowi, jest w Ubuntu przynajmniej od sierpnia 2006
roku (w Debianie od 2008). Czyli żadna nowość ;) .

> wnioskuję z tego, że gdzieś jest jakiś "spis dozwolonych rozszerzeń"
> dla danego programu, który mi tu miesza. pytanie: gdzie on siedzi, i
> jak to można zmodyfikować / wyłączyć?

Nie wiem jak w Ubuntu, ale w Debianie jest
katalog /etc/bash_completion.d/ w którym znajdują się pliki z
odpowiednimi funkcjami dla konkretnych programów (z samą listą
rozszerzeń sobie poradzisz, trudno ją przeoczyć). Jest
też /etc/bash_completion, czyli skrypt stanowiący bazę pozostałych.

Możesz ręcznie dopisać odpowiednie rozszerzenia, ale zmiany
prawdopodobnie wyparują podczas najbliższej aktualizacji pakietu
bash-completion. Dobrym pomysłem może być napisanie developerom o tych
rozszerzeniach które obsługuje mplayer, a których nie podpowiada
bash_completion.
Strona projektu:
http://bash-completion.alioth.debian.org/

Jeśli chcesz wyłączyć tę funkcję, zobacz w swoim ~/.bashrc oraz
~/.bash_profile czy nie wczytujesz skryptu bash_completion. Zakomentuj
(na samym początku postaw #) tę linijkę i po następnym zalogowaniu
będziesz miał czystego bash-a.
-- 
Niżej podpisany, zamieszkały w http://minio.xt.pl ,
                       Mirosław Zalewski
Re: bash i uzupełnianie linii poleceń
#138768
Author: ama
Date: Sat, 11 Dec 2010 22:28
11 lines
1568 bytes
> Ten „tajemniczy klucz” to bash-completion i jeśli wierzyć
> Debianowemu changelogowi, jest w Ubuntu przynajmniej od sierpnia 2006
> roku (w Debianie od 2008). Czyli żadna nowość ;) .

wiesz, zawsze myślałem, że bash completion wrzuca albo pliki wykonywalne 
znajdujące się gdzieś w zmiennej PATH albo - jako argumenty - pliki z 
bieżącego katalogu. nie wiedziałem, że jest jakieś filtrowanie. a to 
mianowicie dlatego, że najwyraźniej deweloperzy jak dotąd nadążali za 
formatami rozszerzeń. :)

dzięki za odpowiedź.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads