$number = int($number / 10);
} elsif ($char eq "\n"
or $char eq $config->{setting}{alternative_return}) {
- if ($number == 0) { # number without selection matches last entry
- $number = 1;
- }
last;
# Selecting a new mode requires falling through into the main input
return { key => $char };
# All other mappings stay in the current mode.
} elsif (defined (my $m = $config->{mapping}{simple}{$char})) {
- $m->($char, $screen, $config, $input);
+ my $result = $m->($char, $screen, $config, $input);
+ last if defined $result->{select_match};
next;
} else {
$screen->draw_matches($config, $matches, \@remaining);
$screen->refresh;
}
+ # Number without selection matches last entry.
+ if ($number == 0) {
+ $number = 1;
+ }
$screen->draw_matches($config, $matches, []); # remove matches
return {};
}
+sub mapping_paste_now {
+ my ($key, $screen, $config, $input) = @_;
+
+ $screen->debug('mapping_paste_now', 'started');
+
+ $config->{state}{handler} = $config->{handler}{paste};
+
+ return {
+ select_match => 1,
+ };
+}
+
sub mapping_yank {
my ($key, $screen, $config, $input) = @_;
return {};
}
+sub mapping_yank_now {
+ my ($key, $screen, $config, $input) = @_;
+
+ $screen->debug('mapping_yank_now', 'started');
+
+ $config->{state}{handler} = $config->{handler}{yank};
+
+ return {
+ select_match => 1,
+ };
+}
=head2 NORMAL MODES
=item B<p> enable pasting (C<\&mapping_paste>)
+=item B<P> paste current selection (like C<\n> but paste) (C<\&mapping_paste_now>)
+
=item B<y> enable yanking (copying) (C<\&mapping_yank>)
+=item B<Y> yank current selection (like C<\n> but yank) (C<\&mapping_yank_now>)
+
=back
Note that yanking only uses the GNU screen or Tmux paste buffer by default. To
);
my %mapping_simple = (
p => \&mapping_paste,
+ P => \&mapping_paste_now,
y => \&mapping_yank,
+ Y => \&mapping_yank_now,
);
=head2 ATTRIBUTES
mapping_mode_search()
mapping_paste()
+ mapping_paste_now()
mapping_yank()
+ mapping_yank_now()
mapping_quit()
Used as mappings, see L</MAPPINGS> above.
sub mapping_mode_search { return main::mapping_mode_search(@_); }
sub mapping_paste { return main::mapping_paste(@_); }
+ sub mapping_paste_now { return main::mapping_paste_now(@_); }
sub mapping_yank { return main::mapping_yank(@_); }
+ sub mapping_yank_now { return main::mapping_yank_now(@_); }
sub mapping_quit { return main::mapping_quit(@_); }
sub handler_yank { return main::handler_yank(@_); }