Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^3: Using Tab Completion on Windows in cmd.exe

by Stamm (Acolyte)
on Nov 26, 2011 at 11:14 UTC ( #940172=note: print w/replies, xml ) Need Help??

in reply to Re^2: Using Tab Completion on Windows in cmd.exe
in thread Using Tab Completion on Windows in cmd.exe

I'm using Windows 7. I think you must have Term::ReadLine::Perl installed. Otherwise, Term::ReadLine::Stub will be used, which doesn't do word completion.
  • Comment on Re^3: Using Tab Completion on Windows in cmd.exe

Replies are listed 'Best First'.
Re^4: Using Tab Completion on Windows in cmd.exe
by Anonymous Monk on Nov 26, 2011 at 11:33 UTC

    Yeah, I got that, I have it

    $ perl -MTerm::ReadLine -MTerm::ReadLine::Perl -d:Modlist -e 1 Carp 1.23 Exporter 5.65 Term::ReadLine 1.07 Term::ReadLine::Perl 1.0303 warnings 1.12

    perl -d:Modlist -e "  use Term::Complete; $|=1; warn $input = Complete( q[ type or tab  ] , [ qw[ ro sham bo foo bar baz ] ] ); "
    doesn't work for me

    update: of course, it doesn't use Term::Readline, duh ...

    So, what are you using, and how (short example please)?

      You're right, it doesn't work with Term::Complete. I thought I had tested it. As you said, it doesn't even use Term::ReadLine.

      It works with Term::Shell. Here with the pod example slightly modified:
      package MyShell; $ENV{TERM} = ''; use base qw(Term::Shell); sub run_command1 { print "command 1!\n"; } sub smry_command1 { "what does command1 do?" } sub help_command1 { "Help on 'command1', whatever that may be..." } sub run_command2 { print "command 2!\n"; } package main; my $shell = MyShell->new; $shell->cmdloop;

      Or directly with Term::ReadLine:
      use Term::ReadLine; $ENV{TERM} = ''; my $term = Term::ReadLine->new('Tab Completion'); my $prompt = ">>> "; &readline::rl_basic_commands( qw(set quit type test run exit) ); while ( defined ( $_ = $term->readline($prompt) ) ) { exit if /exit/ or /quit/; print $_, "\n"; }

        Thank you, that seems usable

        For me, if i start typing something, and hit tab, it gets completed

        This i expected

        But if I only type tab, nothing happens until I hit tab again, at which point a newline is printed, then the available tab choices and a newline, then the prompt again

        This i didn't expect, I kinda expected it to cycle through list of completions, like cmd.exe does for filenames, like my demo from earlier, with shift+tab going in reverse (as is common, but which my version doesn't do)

        At least it usable

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://940172]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (8)
As of 2018-03-23 11:12 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (290 votes). Check out past polls.