From 38da5ad415df8010ebcbbcf77ed0bd8f77785d08 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Sun, 26 Sep 2010 23:58:24 +0200 Subject: vim_mode: Add r. --- vim-mode/vim_mode.pl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index 8deb7ed..574fd9b 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -8,6 +8,7 @@ # * cursor word motion with: w b e W B E # * change/delete: c d C D # * delete at cursor: x +# * replace at cursor: r # * Insert mode at pos: i a # * Insert mode at start: I # * insert mode at end: A @@ -180,6 +181,8 @@ my $movements 'I' => { func => \&cmd_movement_I }, 'a' => { func => \&cmd_movement_a }, 'A' => { func => \&cmd_movement_A }, + # replace mode + 'r' => { func => \&cmd_movement_r }, # paste 'p' => { func => \&cmd_movement_p }, 'P' => { func => \&cmd_movement_P }, @@ -202,6 +205,7 @@ my $movements_multiple = 't' => undef, 'F' => undef, 'T' => undef, + 'r' => undef, }; @@ -498,6 +502,15 @@ sub cmd_movement_A { _update_mode(M_INS); } +sub cmd_movement_r { + my ($count, $pos, $char) = @_; + + my $input = _input(); + substr $input, $pos, 1, $char; + _input($input); + _input_pos($pos); +} + sub cmd_movement_p { my ($count, $pos) = @_; _paste_at_position($count, $pos + 1); -- cgit v1.2.3