view src/testdir/test_substitute.vim @ 10682:d564e73ff9ee v8.0.0231

patch 8.0.0231: bracketed paste mode is not tested commit https://github.com/vim/vim/commit/076e502199b19e6141e4c1e659ff3f21b71934e1 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 24 18:58:30 2017 +0100 patch 8.0.0231: bracketed paste mode is not tested Problem: There are no tests for bracketed paste mode. Solution: Add a test. Fix repeating with "normal .".
author Christian Brabandt <cb@256bit.org>
date Tue, 24 Jan 2017 19:00:06 +0100
parents c104f09ae2f4
children fbed07965b6a
line wrap: on
line source

" Tests for multi-line regexps with ":s".

function! Test_multiline_subst()
  enew!
  call append(0, ["1 aa",
	      \ "bb",
	      \ "cc",
	      \ "2 dd",
	      \ "ee",
	      \ "3 ef",
	      \ "gh",
	      \ "4 ij",
	      \ "5 a8",
	      \ "8b c9",
	      \ "9d",
	      \ "6 e7",
	      \ "77f",
	      \ "xxxxx"])

  1
  " test if replacing a line break works with a back reference
  /^1/,/^2/s/\n\(.\)/ \1/
  " test if inserting a line break works with a back reference
  /^3/,/^4/s/\(.\)$/\r\1/
  " test if replacing a line break with another line break works
  /^5/,/^6/s/\(\_d\{3}\)/x\1x/
  call assert_equal('1 aa bb cc 2 dd ee', getline(1))
  call assert_equal('3 e', getline(2))
  call assert_equal('f', getline(3))
  call assert_equal('g', getline(4))
  call assert_equal('h', getline(5))
  call assert_equal('4 i', getline(6))
  call assert_equal('j', getline(7))
  call assert_equal('5 ax8', getline(8))
  call assert_equal('8xb cx9', getline(9))
  call assert_equal('9xd', getline(10))
  call assert_equal('6 ex7', getline(11))
  call assert_equal('7x7f', getline(12))
  call assert_equal('xxxxx', getline(13))
  enew!
endfunction