From c2c5b35a212409109b7ed9676427e8a420078c90 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Thu, 30 Sep 2010 22:13:42 +0200 Subject: vim_mode: Also unregister the vim_windows statusbar. --- vim-mode/vim_mode.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index ab948c3..ebed331 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -1391,6 +1391,7 @@ sub setup_changed { sub UNLOAD { Irssi::signal_remove('gui key pressed' => \&got_key); Irssi::statusbar_item_unregister ('vim_mode'); + Irssi::statusbar_item_unregister ('vim_windows'); } -- cgit v1.2.3 From 61ebb39943e3ca8b32a724c14885399b55f51709 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Thu, 30 Sep 2010 22:55:41 +0200 Subject: vim_mode: Fix insert repeat forgetting flushed @input_buf chars. --- vim-mode/vim_mode.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index ebed331..89b2dd0 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -1126,6 +1126,9 @@ sub flush_input_buffer { # see what we've collected. print "Input buffer flushed" if DEBUG; + # Add the characters to @insert_buf so they can be repeated. + push @insert_buf, map chr, @input_buf; + _emulate_keystrokes(@input_buf); @input_buf = (); -- cgit v1.2.3 From 800020720932c089a0997fe7aa1be241a15f2d80 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Thu, 30 Sep 2010 23:45:46 +0200 Subject: vim_mode: Implement black hole register. --- vim-mode/vim_mode.pl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vim-mode/vim_mode.pl b/vim-mode/vim_mode.pl index 89b2dd0..1de7a6d 100644 --- a/vim-mode/vim_mode.pl +++ b/vim-mode/vim_mode.pl @@ -186,6 +186,7 @@ my $registers '"' => '', # default register '+' => '', # contains irssi's cut buffer '*' => '', # same + '_' => '', # black hole register, always empty }; foreach my $char ('a' .. 'z') { $registers->{$char} = ''; @@ -802,6 +803,11 @@ sub cmd_movement_register { return; } + # make sure black hole register is always empty + if ($char eq '_') { + $registers->{_} = ''; + } + # + and * contain both irssi's cut-buffer if ($char eq '+' or $char eq '*') { $registers->{'+'} = Irssi::parse_special('$U'); -- cgit v1.2.3