@@ -818,7 +818,99 @@ func Test_visual_block_mode()
818818 exe " normal ld\<C-V> j"
819819 call assert_equal ([' 13' , ' 46' , ' 789' ], getline (1 , ' $' ))
820820
821+ " Test from ':help v_b_I_example'
822+ % d _
823+ setlocal tabstop = 8 shiftwidth = 4
824+ let lines = << trim END
825+ abcdefghijklmnopqrstuvwxyz
826+ abc defghijklmnopqrstuvwxyz
827+ abcdef ghi jklmnopqrstuvwxyz
828+ abcdefghijklmnopqrstuvwxyz
829+ END
830+ call setline (1 , lines )
831+ exe " normal ggfo\<C-V> 3jISTRING"
832+ let expected = << trim END
833+ abcdefghijklmnSTRINGopqrstuvwxyz
834+ abc STRING defghijklmnopqrstuvwxyz
835+ abcdef ghi STRING jklmnopqrstuvwxyz
836+ abcdefghijklmnSTRINGopqrstuvwxyz
837+ END
838+ call assert_equal (expected, getline (1 , ' $' ))
839+
840+ " Test from ':help v_b_A_example'
841+ % d _
842+ let lines = << trim END
843+ abcdefghijklmnopqrstuvwxyz
844+ abc defghijklmnopqrstuvwxyz
845+ abcdef ghi jklmnopqrstuvwxyz
846+ abcdefghijklmnopqrstuvwxyz
847+ END
848+ call setline (1 , lines )
849+ exe " normal ggfo\<C-V> 3j$ASTRING"
850+ let expected = << trim END
851+ abcdefghijklmnopqrstuvwxyzSTRING
852+ abc defghijklmnopqrstuvwxyzSTRING
853+ abcdef ghi jklmnopqrstuvwxyzSTRING
854+ abcdefghijklmnopqrstuvwxyzSTRING
855+ END
856+ call assert_equal (expected, getline (1 , ' $' ))
857+
858+ " Test from ':help v_b_<_example'
859+ % d _
860+ let lines = << trim END
861+ abcdefghijklmnopqrstuvwxyz
862+ abc defghijklmnopqrstuvwxyz
863+ abcdef ghi jklmnopqrstuvwxyz
864+ abcdefghijklmnopqrstuvwxyz
865+ END
866+ call setline (1 , lines )
867+ exe " normal ggfo\<C-V> 3j3l<.."
868+ let expected = << trim END
869+ abcdefghijklmnopqrstuvwxyz
870+ abc defghijklmnopqrstuvwxyz
871+ abcdef ghi jklmnopqrstuvwxyz
872+ abcdefghijklmnopqrstuvwxyz
873+ END
874+ call assert_equal (expected, getline (1 , ' $' ))
875+
876+ " Test from ':help v_b_>_example'
877+ % d _
878+ let lines = << trim END
879+ abcdefghijklmnopqrstuvwxyz
880+ abc defghijklmnopqrstuvwxyz
881+ abcdef ghi jklmnopqrstuvwxyz
882+ abcdefghijklmnopqrstuvwxyz
883+ END
884+ call setline (1 , lines )
885+ exe " normal ggfo\<C-V> 3j>.."
886+ let expected = << trim END
887+ abcdefghijklmn opqrstuvwxyz
888+ abc defghijklmnopqrstuvwxyz
889+ abcdef ghi jklmnopqrstuvwxyz
890+ abcdefghijklmn opqrstuvwxyz
891+ END
892+ call assert_equal (expected, getline (1 , ' $' ))
893+
894+ " Test from ':help v_b_r_example'
895+ % d _
896+ let lines = << trim END
897+ abcdefghijklmnopqrstuvwxyz
898+ abc defghijklmnopqrstuvwxyz
899+ abcdef ghi jklmnopqrstuvwxyz
900+ abcdefghijklmnopqrstuvwxyz
901+ END
902+ call setline (1 , lines )
903+ exe " normal ggfo\<C-V> 5l3jrX"
904+ let expected = << trim END
905+ abcdefghijklmnXXXXXXuvwxyz
906+ abc XXXXXXhijklmnopqrstuvwxyz
907+ abcdef ghi XXXXXX jklmnopqrstuvwxyz
908+ abcdefghijklmnXXXXXXuvwxyz
909+ END
910+ call assert_equal (expected, getline (1 , ' $' ))
911+
821912 bwipe!
913+ set tabstop & shiftwidth &
822914endfunc
823915
824916" Test block-insert using cursor keys for movement
0 commit comments