Mercurial > vim
diff src/testdir/test_searchpos.vim @ 7358:6fbeef3b65e6 v7.4.984
commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 28 19:20:36 2015 +0100
patch 7.4.984
Problem: searchpos() always starts searching in the first column, which is
not what some people expect. (Brett Stahlman)
Solution: Add the 'z' flag: start at the specified column.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 28 Dec 2015 19:30:04 +0100 |
parents | |
children | 9fc996244059 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/src/testdir/test_searchpos.vim @@ -0,0 +1,28 @@ +" Tests for searchpos() + +func Test_searchpos() + new one + 0put ='1a3' + 1put ='123xyz' + call cursor(1, 1) + call assert_equal([1, 1, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW')) + call cursor(1, 2) + call assert_equal([2, 1, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW')) + set cpo-=c + call cursor(1, 2) + call assert_equal([1, 2, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW')) + call cursor(1, 3) + call assert_equal([1, 3, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}xyz', 'pcW')) + + " Now with \zs, first match is in column 0, "a" is matched. + call cursor(1. 3) + call assert_equal([2, 4, 2], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcW')) + " With z flag start at cursor column, don't see the "a". + call cursor(1. 3) + call assert_equal([2, 4, 1], searchpos('\%(\([a-z]\)\|\_.\)\{-}\zsxyz', 'pcWz')) + + set cpo+=c + " close the window + q! + +endfunc