Tests for "vaBiB", end could be wrong. Also test ":s/pat/sub/" with different ~s in sub. Also test for ^Vxff and ^Vo123 in Insert mode. Also test "[m", "]m", "[M" and "]M" Also test search() STARTTEST :so small.vim /Start cursor here vaBiBD:?Bug?,/Piece/-2w! test.out /^- Bug :s/u/~u~/ :s/i/~u~/ :s/o/~~~/ :.w >>test.out :if has("ebcdic") : let tt = "o\193\xc2\o303 \90a\xfg\o578\" :else : let tt = "o\65\x42\o103 \33a\xfg\o78\" :endif :exe "normal " . tt :unlet tt :.w >>test.out :set vb /^Piece 2]maA:.w >>test.out j]maB:.w >>test.out ]maC:.w >>test.out [maD:.w >>test.out k2[maE:.w >>test.out 3[maF:.w >>test.out ]MaG:.w >>test.out j2]MaH:.w >>test.out ]M]MaI:.w >>test.out 2[MaJ:.w >>test.out k[MaK:.w >>test.out 3[MaL:.w >>test.out :" /^foobar :let startline = line('.') :call search('foobar', 'c') :call append(line('$'), line('.') - startline) j:call search('^$', 'c') :call append(line('$'), line('.') - startline) :call search('^$', 'bc') :call append(line('$'), line('.') - startline) /two :call search('.', 'c') :call append(line('$'), getline('.')[col('.') - 1:]) :/^search()/,$w >>test.out :qa! ENDTEST - Bug in "vPPPP" on this text (Webb): { cmd; { cmd; /* <-- Start cursor here */ { } } } Piece of Java { tt m1 { t1; } e1 tt m2 { t2; } e2 tt m3 { if (x) { t3; } } e3 } foobar one two search()