Problem regarding command line completion
Peter Otten
__peter__ at web.de
Mon Oct 3 14:31:01 EDT 2011
Rajashree Thorat wrote:
> Please can anyone help me in resolving following problem.
>
> import cmd
> class CmdLineApp(cmd.Cmd):
>
> def do_grep(self, line):
> print line
>
> option = ["--ignore-case",
> "--invert-match","--word-regexp","--line-regexp"]
> def complete_grep(self, text, line, begidx, endidx):
> return [i for i in CmdLineApp.option if
> i.startswith(text)]
>
> interpreter = CmdLineApp()
> interpreter.cmdloop()
>
> In above program I want to do command line completion (or tab completion).
> If the elements of option list starts with special character such as
> '-', '@', '#', '--' , then it is giving me output like
>
> (Cmd) grep
> grep
> (Cmd) grep ------
>
> instead of
>
> (Cmd) grep --
> --ignore-case --invert-match --word-regexp --line-regexp
>
> How I can handle this special characters?
Try removing them from readline's set of delimiters with
import readline
delims = readline.get_completer_delims()
my_delims = "".join(set(delims) - set("-@#"))
readline.set_completer_delims(my_delims)
More information about the Python-list
mailing list