From cf1b82b1522d21539754698a8222b363abf127e7 Mon Sep 17 00:00:00 2001 From: hluk Date: Thu, 25 Apr 2013 17:40:06 +0200 Subject: FakeVim: Emulate insert mode more precisely Set correct position for commands I, A in visual mode. Don't repeat insert mode [count] times if cursor moved in insert mode (or after command). Don't repeat movement in insert mode ([count] is used only to repeat the first inserted text). Dot command for insert mode should be cleared if cursor moved and user started inserting a text. Change-Id: I4dbd0fa4e7ecedc6623838c9ad855f83276da2ce Reviewed-by: hjk --- src/plugins/fakevim/fakevim_test.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/plugins/fakevim/fakevim_test.cpp') diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 1415e29bf3..ae2a7a31c3 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -575,6 +575,21 @@ void FakeVimPlugin::test_vim_insert() KEYS("2jh" "2I" "XYZ", "abc" N "d" X "XYZXYZef" N "" N "jXYZXYZkl" N "mno"); INTEGRITY(false); + // insert in visual mode + data.setText(" a" X "bcde" N " fghij" N " klmno"); + KEYS("v2l" "2Ixyz", "xyzxy" X "z abcde" N " fghij" N " klmno"); + KEYS("u", X " abcde" N " fghij" N " klmno"); + KEYS("", X "xyzxyz abcde" N " fghij" N " klmno"); + KEYS("$.", "xyzxyz abcdxyzxy" X "ze" N " fghij" N " klmno"); + + // repeat only last insertion + data.setText(" abc" N " def" N " ghi"); + KEYS("2l" "2i" "XYZ" "j" "123", " XYZabc" N " def12" X "3" N " ghi"); + KEYS("0l.", " XYZabc" N " 12" X "3 def123" N " ghi"); + // insert nothing + KEYS("i", " XYZabc" N " 1" X "23 def123" N " ghi"); + KEYS(".", " XYZabc" N " " X "123 def123" N " ghi"); + // repeat insert with special characters data.setText("ab" X "c" N "def"); KEYS("2idown>", "abc" N "def"); -- cgit v1.2.1