Tests for text-objects     vim: set ft=vim :

STARTTEST
:so small.vim
:if !has('textobjects') | e! test.ok | wq! test.out | endif
:set nocp viminfo+=nviminfo
:"
:function SelectionOut(data)
:  new
:  call setline(1, a:data)
:  call setreg('"', '')
:  normal! ggfrmavi)y
:  $put =getreg('\"')
:  call setreg('"', '')
:  normal! `afbmavi)y
:  $put =getreg('\"')
:  call setreg('"', '')
:  normal! `afgmavi)y
:  $put =getreg('\"')
:  %yank a
:  q!
:  $put =getreg('a')
:endfunction
:"
:$put ='# Test for vi) without cpo-M'
:set cpo-=M
:call SelectionOut('(red \(blue) green)')
:"
:$put ='# Test for vi) with cpo-M #1'
:set cpo+=M
:call SelectionOut('(red \(blue) green)')
:"
:$put ='# Test for vi) with cpo-M #2'
:set cpo+=M
:call SelectionOut('(red (blue\) green)')
:/^Results/,$w test.out
:qa!
ENDTEST

Results of text-objects
