# NOTE: Derived from lib/Term/ReadLine/Zoid/ViCommand.pm. # Changes made here will be lost when autosplit is run again. # See AutoSplit.pm. package Term::ReadLine::Zoid::ViCommand; #line 289 "lib/Term/ReadLine/Zoid/ViCommand.pm (autosplit into blib/lib/auto/Term/ReadLine/Zoid/ViCommand/vi_complete.al)" sub vi_complete { my ($self, $key) = @_; return $self->possible_completions() if $key eq '='; my $buffer = join "\n", @{$$self{lines}}; my $begin = substr $buffer, 0, $self->pos2off($$self{pos}), ''; $begin =~ s/(\S*)$//; my $glob = $1; $$self{pos}[0] -= length $1; use File::Glob ':glob'; $glob .= '*' unless $glob =~ /[\*\?\[]/; my @list = bsd_glob($glob, GLOB_TILDE | GLOB_BRACE); my $string; if ($key eq '\\') { @list = $self->longest_match(@list); $string = shift(@list); $self->output(@list); } elsif ($key eq '*') { $string = join ' ', @list } $$self{pos}[0] += length $string; @{$$self{lines}} = split /\n/, $begin . $string . $buffer; $self->switch_mode() if $key eq '*'; } # end of Term::ReadLine::Zoid::ViCommand::vi_complete 1;