1" Tests for multi-line regexps with ":s". 2 3function! Test_multiline_subst() 4 enew! 5 call append(0, ["1 aa", 6 \ "bb", 7 \ "cc", 8 \ "2 dd", 9 \ "ee", 10 \ "3 ef", 11 \ "gh", 12 \ "4 ij", 13 \ "5 a8", 14 \ "8b c9", 15 \ "9d", 16 \ "6 e7", 17 \ "77f", 18 \ "xxxxx"]) 19 20 1 21 " test if replacing a line break works with a back reference 22 /^1/,/^2/s/\n\(.\)/ \1/ 23 " test if inserting a line break works with a back reference 24 /^3/,/^4/s/\(.\)$/\r\1/ 25 " test if replacing a line break with another line break works 26 /^5/,/^6/s/\(\_d\{3}\)/x\1x/ 27 call assert_equal('1 aa bb cc 2 dd ee', getline(1)) 28 call assert_equal('3 e', getline(2)) 29 call assert_equal('f', getline(3)) 30 call assert_equal('g', getline(4)) 31 call assert_equal('h', getline(5)) 32 call assert_equal('4 i', getline(6)) 33 call assert_equal('j', getline(7)) 34 call assert_equal('5 ax8', getline(8)) 35 call assert_equal('8xb cx9', getline(9)) 36 call assert_equal('9xd', getline(10)) 37 call assert_equal('6 ex7', getline(11)) 38 call assert_equal('7x7f', getline(12)) 39 call assert_equal('xxxxx', getline(13)) 40 enew! 41endfunction 42