Jeg bruger ofte programmet sitecopy, og vil gerne have automatisk completion
på.
Jeg er kommet et godt stykke. Jeg har lavet filen
"/etc/bash_completion.d/sitecopy", med følgende indhold:
have sitecopy && _sitecopy()
{
COMPREPLY=( $( cat ~/.sitecopyrc | grep ^site | sed 's/^site //' ) )
}
[ "$have" ] && complete -F _sitecopy sitecopy
Det ændrede tilsyneladende ikke noget. I promptet prøvede jeg så fyre
linjerne af. Jeg måtte lige fjerne de to "have"-dimser, så virkede det
næsten:
$ sitecopy d<TAB><TAB>
domæne1.dk eksempel1.dk
domæne2.dk eksempel2.dk
$ sitecopy dd<TAB><TAB>
domæne1.dk eksempel1.dk
domæne2.dk eksempel2.dk
Den giver altså en helt korrekt liste over mulighederne, men der sker intet
med selve kommandolinjen, og den giver en komplet liste i stedet for kun
dem, der starter med det, jeg allerede har skrevet.
Hvis jeg starter en ny xterm (med bash) indeholder listen ikke længere en
liste med domænenavne, men i stedet blot ét element: "ls=". Til gengæld
fungerer auto-completion. Skriver jeg noget andet end "l" får jeg ikke
noget frem, men skriver jeg starten af "ls=" sætter den selv resten på.
Hvordan får jeg mon løst de to problemer? Jeg har ikke kunnet finde noget på
Google, eller ved at kigge i de eksisterende eksempler (jeg forstår dem
ikke, da min bash-viden er for begrænset).
--
Mvh.
Niels Andersen
Linux 2.4.20 - Debian testing/unstable
|