Test Visual block mode commands And test "U" in Visual mode, also on German sharp S. #define BO_ALL 0x0001 #define BO_BS 0x0002 #define BO_CRSR 0x0004 STARTTEST :so small.vim :so mbyte.vim :" This only works when 'encoding' is "latin1", don't depend on the environment :set enc=latin1 /^abcde :" Test shift-right of a block jlllljj>wlljlll> :" Test shift-left of a block G$hhhhkk< :" Test block-insert GklkkkIxyz :" Test block-replace Gllllkkklllrq :" Test block-change G$khhhhhkkcmno :$-4,$w! test.out :" Test block-insert using cursor keys for movement /^aaaa/ :exe ":norm! l\jjjlllI\\ \" :/^aa/,/^$/w >> test.out /xaaa$/ :exe ":norm! \jjjI<>\p\" :/xaaa$/,/^$/w >> test.out :" Test for Visual block was created with the last $ /^A23$/ :exe ":norm! l\j$Aab\" :.,/^$/w >> test.out :" Test for Visual block was created with the middle $ (1) /^B23$/ :exe ":norm! l\j$hAab\" :.,/^$/w >> test.out :" Test for Visual block was created with the middle $ (2) /^C23$/ :exe ":norm! l\j$hhAab\" :.,/^$/w >> test.out :" Test for Visual block insert when virtualedit=all and utf-8 encoding :set ve=all enc=utf-8 :/\t\tline :exe ":norm! 07l\jjIx\" :.,/^$/w >> test.out :" Test for Visual block append when virtualedit=all :exe ":norm! 012l\jjAx\" :set ve= enc=latin1 :.,/^$/w >> test.out :" gUe must uppercase a whole word, also when ß changes to SS Gothe youtußeuu endYpk0wgUe :" gUfx must uppercase until x, inclusive. O- youßtußexu -0fogUfx :" VU must uppercase a whole line YpkVU :" same, when it's the last line in the buffer YPGi111VUddP :" Uppercase two lines Oblah di doh dutVkUj :" Uppercase part of two lines ddppi333k0i222fyllvjfuUk :" visual replace using Enter or NL G3o1234567892k05l2jr G3o987652k02l2jr G3o1234567892k05l2jr G3o987652k02l2jr :" :" Test cursor position. When ve=block and Visual block mode and $gj :set ve=block :exe ":norm! 2k\$gj\" :let cpos=getpos("'>") :$put ='col:'.cpos[2].' off:'.cpos[3] :" :" block_insert when replacing spaces in front of the block with tabs :set ts=8 sts=4 sw=4 :4,7y Gp :exe ":norm! f0\2jI\\" :/^the/,$w >> test.out :qa! ENDTEST line1 line2 line3 aaaaaa bbbbbb cccccc dddddd xaaa bbbb cccc dddd yaaa ¿¿¿ bbb A23 4567 B23 4567 C23 4567 abcdefghijklm abcdefghijklm abcdefghijklm abcdefghijklm abcdefghijklm