On 05/21/2010 09:50 AM, Peng Yu wrote: > complete -c works. I'm not familar with bash-completion package. How > to customize search path for each command.
By using appropriate complete invocations for each command, and lots of
shell functions.
>
> For exmaple, I want search in $PYTHONPATH after the command python.
bash-completion could do that for you, too.
$ complete -p python
complete -o filenames -F _python python
$ type _python
_python is a function
_python ()
{
local prev cur i;
COMPREPLY=();
cur=`_get_cword`;
prev=${COMP_WORDS[COMP_CWORD-1]##*/};
case "$prev" in
-Q)
COMPREPLY=($( compgen -W "old new warn warnall" -- "$cur" ));
return 0
;;
-W)
COMPREPLY=($( compgen -W "ignore default all module once
error" -- "$cur" ));
return 0
;;
-c)
_filedir '@(py|pyc|pyo)';
return 0
;;
!(python|-?))
[[ ${COMP_WORDS[COMP_CWORD-2]} != -@(Q|W) ]] && _filedir
;;
esac;
for ((i=0; i < ${#comp_wor...@]}-1; i++ ))
do
if [[ ${COMP_WORDS[i]} == -c ]]; then
_filedir;
fi;
done;
if [[ "$cur" != -* ]]; then
_filedir '@(py|pyc|pyo)';
else
COMPREPLY=($( compgen -W "- -d -E -h -i -O -Q -S -t -u
-U -v -V -W -x -c" -- "$cur" ));
fi;
return 0
}
Actually, I don't see any mention of PYTHONPATH in that function, so you
may want to file an enhancement request against the bash-completion
package to improve their _python() function to also consider PYTHONPATH,
rather than just *.py[co] files.
>
> BTW, where is the manual for the -c option of complete. There are too
> many 'complete' in man bash. Would you please point me which section
> is relevant to complete -c.
'help complete' is the easiest way to see the short details; other than
that, look for complete under 'SHELL BUILTIN COMMANDS' in the man page.
--
Eric Blake [email protected] +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
