diff options
Diffstat (limited to 'src/nvim/testdir/test_gn.vim')
-rw-r--r-- | src/nvim/testdir/test_gn.vim | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/src/nvim/testdir/test_gn.vim b/src/nvim/testdir/test_gn.vim deleted file mode 100644 index c4a41a6742..0000000000 --- a/src/nvim/testdir/test_gn.vim +++ /dev/null @@ -1,221 +0,0 @@ -" Test for gn command - -func Test_gn_command() - noautocmd new - " replace a single char by itself quoted: - call setline('.', 'abc x def x ghi x jkl') - let @/ = 'x' - exe "norm! cgn'x'\<esc>.." - call assert_equal("abc 'x' def 'x' ghi 'x' jkl", getline('.')) - sil! %d_ - - " simple search match - call setline('.', 'foobar') - let @/ = 'foobar' - exe "norm! gncsearchmatch" - call assert_equal('searchmatch', getline('.')) - sil! %d _ - - " replace a multi-line match - call setline('.', ['', 'one', 'two']) - let @/ = 'one\_s*two\_s' - exe "norm! gnceins\<CR>zwei" - call assert_equal(['','eins','zwei'], getline(1,'$')) - sil! %d _ - - " test count argument - call setline('.', ['', 'abcdx | abcdx | abcdx']) - let @/ = '[a]bcdx' - exe "norm! 2gnd" - call assert_equal(['','abcdx | | abcdx'], getline(1,'$')) - sil! %d _ - - " join lines - call setline('.', ['join ', 'lines']) - let @/ = '$' - exe "norm! 0gnd" - call assert_equal(['join lines'], getline(1,'$')) - sil! %d _ - - " zero-width match - call setline('.', ['', 'zero width pattern']) - let @/ = '\>\zs' - exe "norm! 0gnd" - call assert_equal(['', 'zerowidth pattern'], getline(1,'$')) - sil! %d _ - - " delete first and last chars - call setline('.', ['delete first and last chars']) - let @/ = '^' - exe "norm! 0gnd$" - let @/ = '\zs' - exe "norm! gnd" - call assert_equal(['elete first and last char'], getline(1,'$')) - sil! %d _ - - " using visual mode - call setline('.', ['', 'uniquepattern uniquepattern']) - exe "norm! /[u]niquepattern/s\<cr>vlgnd" - call assert_equal(['', ' uniquepattern'], getline(1,'$')) - sil! %d _ - - " backwards search - call setline('.', ['my very excellent mother just served us nachos']) - let @/ = 'mother' - exe "norm! $cgNmongoose" - call assert_equal(['my very excellent mongoose just served us nachos'], getline(1,'$')) - sil! %d _ - - " search for single char - call setline('.', ['','for (i=0; i<=10; i++)']) - let @/ = 'i' - exe "norm! cgnj" - call assert_equal(['','for (j=0; i<=10; i++)'], getline(1,'$')) - sil! %d _ - - " search hex char - call setline('.', ['','Y']) - set noignorecase - let @/ = '\%x59' - exe "norm! gnd" - call assert_equal(['',''], getline(1,'$')) - sil! %d _ - - " test repeating gdn - call setline('.', ['', '1', 'Johnny', '2', 'Johnny', '3']) - let @/ = 'Johnny' - exe "norm! dgn." - call assert_equal(['','1', '', '2', '', '3'], getline(1,'$')) - sil! %d _ - - " test repeating gUgn - call setline('.', ['', '1', 'Depp', '2', 'Depp', '3']) - let @/ = 'Depp' - exe "norm! gUgn." - call assert_equal(['', '1', 'DEPP', '2', 'DEPP', '3'], getline(1,'$')) - sil! %d _ - - " test using look-ahead assertions - call setline('.', ['a:10', '', 'a:1', '', 'a:20']) - let @/ = 'a:0\@!\zs\d\+' - exe "norm! 2nygno\<esc>p" - call assert_equal(['a:10', '', 'a:1', '1', '', 'a:20'], getline(1,'$')) - sil! %d _ - - " test using nowrapscan - set nowrapscan - call setline(1, 'foo bar baz') - exe "norm! /bar/e\<cr>" - exe "norm! gnd" - call assert_equal(['foo baz'], getline(1,'$')) - sil! %d_ - - " search upwards with nowrapscan set - call setline('.', ['foo', 'bar', 'foo', 'baz']) - set nowrapscan - let @/ = 'foo' - $ - norm! dgN - call assert_equal(['foo', 'bar', '', 'baz'], getline(1,'$')) - sil! %d_ - - " search using the \zs atom - call setline(1, [' nnoremap', '' , 'nnoremap']) - set wrapscan&vim - let @/ = '\_s\zsnnoremap' - $ - norm! cgnmatch - call assert_equal([' nnoremap', '', 'match'], getline(1,'$')) - sil! %d_ - - " make sure it works correctly for one-char wide search items - call setline('.', ['abcdefghi']) - let @/ = 'a' - exe "norm! 0fhvhhgNgU" - call assert_equal(['ABCDEFGHi'], getline(1,'$')) - call setline('.', ['abcdefghi']) - let @/ = 'b' - " this gn wraps around the end of the file - exe "norm! 0fhvhhgngU" - call assert_equal(['aBCDEFGHi'], getline(1,'$')) - sil! %d _ - call setline('.', ['abcdefghi']) - let @/ = 'f' - exe "norm! 0vllgngU" - call assert_equal(['ABCDEFghi'], getline(1,'$')) - sil! %d _ - call setline('.', ['12345678']) - let @/ = '5' - norm! gg0f7vhhhhgnd - call assert_equal(['12348'], getline(1,'$')) - sil! %d _ - call setline('.', ['12345678']) - let @/ = '5' - norm! gg0f2vf7gNd - call assert_equal(['1678'], getline(1,'$')) - sil! %d _ - set wrapscan&vim - - " Without 'wrapscan', in visual mode, running gn without a match should fail - " but the visual mode should be kept. - set nowrapscan - call setline('.', 'one two') - let @/ = 'one' - call assert_beeps('normal 0wvlgn') - exe "normal y" - call assert_equal('tw', @") - - " with exclusive selection, run gn and gN - set selection=exclusive - normal 0gny - call assert_equal('one', @") - normal 0wgNy - call assert_equal('one', @") - set selection& -endfunc - -func Test_gN_repeat() - new - call setline(1, 'this list is a list with a list of a list.') - /list - normal $gNgNgNx - call assert_equal('list with a list of a list', @") - bwipe! -endfunc - -func Test_gN_then_gn() - new - - call setline(1, 'this list is a list with a list of a last.') - /l.st - normal $gNgNgnx - call assert_equal('last', @") - - call setline(1, 'this list is a list with a lust of a last.') - /l.st - normal $gNgNgNgnx - call assert_equal('lust of a last', @") - - bwipe! -endfunc - -func Test_gn_multi_line() - new - call setline(1, [ - \ 'func Tm1()', - \ ' echo "one"', - \ 'endfunc', - \ 'func Tm2()', - \ ' echo "two"', - \ 'endfunc', - \ 'func Tm3()', - \ ' echo "three"', - \ 'endfunc', - \]) - /\v^func Tm\d\(\)\n.*\zs".*"\ze$ - normal jgnrx - call assert_equal(' echo xxxxx', getline(5)) - bwipe! -endfunc - -" vim: shiftwidth=2 sts=2 expandtab |