2009-04-29 15 views
12

Mam listę profili unisonońskich, które istnieją w ~/.unison/*.prf.Zakończenie bash dla niektórych typów plików w specjalnym katalogu

Chciałbym mieć zakończenia bash, tak aby po wpisaniu unison lub unison-gtk i uderzył kartę byłoby notować .prf pliki z tego folderu bez .prf części.

Być przykładem byłby wyraźniejszy:

$ 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 

Przewiduję potrzebuje tego dla innego narzędzia, tak więc byłoby wygodne, gdyby nie było części, które mogą być ponownie wykorzystane.

Odpowiedz

15

Jeśli używasz Debiana/Ubuntu lub prawdopodobnie innych dystrybucji GNU/Linux, przykłady tego typu uzupełnień powinny znaleźć się w katalogu /etc/bash_completion.d/. Oto przykład, w jaki sposób można skonfigurować skrypt do zakończenia unisono:

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 
+0

działa świetnie, jedyne zmiany zrobiłem było kompletny -o nospace -F _unison_show UNISON UNISON-gtk –

Powiązane problemy