Bram Moolenaar | cd055da | 2016-09-02 19:50:48 +0200 | [diff] [blame] | 1 | " Tests for multi-line regexps with ":s". |
| 2 | |
| 3 | function! 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! |
| 41 | endfunction |