view src/testdir/test40.in @ 8806:8fff73f17ff1 v7.4.1691

commit https://github.com/vim/vim/commit/b681be175b6991cdc2b8ddd49b0e97e3fe2b201e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Mar 31 23:02:16 2016 +0200 patch 7.4.1691 Problem: When switching to a new buffer and an autocommand applies syntax highlighting an ml_get error may occur. Solution: Check "syn_buf" against the buffer in the window. (Alexander von Buddenbrock, closes #676)
author Christian Brabandt <cb@256bit.org>
date Thu, 31 Mar 2016 23:15:05 +0200
parents ad7b6062a7f4
children
line wrap: on
line source

Test for "*Cmd" autocommands

STARTTEST
:so small.vim
:/^start/,$w! Xxx		" write lines below to Xxx
:au BufReadCmd XtestA 0r Xxx|$del
:e XtestA			" will read text of Xxd instead
:au BufWriteCmd XtestA call append(line("$"), "write")
:w				" will append a line to the file
:r XtestA			" should not read anything
:				" now we have:
:				" 1	start of Xxx
:				" 2		test40
:				" 3	end of Xxx
:				" 4	write
:au FileReadCmd XtestB '[r Xxx
:2r XtestB			" will read Xxx below line 2 instead
:				" 1	start of Xxx
:				" 2		test40
:				" 3	start of Xxx
:				" 4		test40
:				" 5	end of Xxx
:				" 6	end of Xxx
:				" 7	write
:au FileWriteCmd XtestC '[,']copy $
4GA1
:4,5w XtestC			" will copy lines 4 and 5 to the end
:r XtestC			" should not read anything
:				" 1	start of Xxx
:				" 2		test40
:				" 3	start of Xxx
:				" 4		test401
:				" 5	end of Xxx
:				" 6	end of Xxx
:				" 7	write
:				" 8		test401
:				" 9	end of Xxx
:au FILEAppendCmd XtestD '[,']w! test.out
:w >>XtestD			" will write all lines to test.out
:$r XtestD			" should not read anything
:$w >>test.out			" append "end of Xxx" to test.out
:au BufReadCmd XtestE 0r test.out|$del
:sp XtestE			" split window with test.out
5Goasdf:"
:au BufWriteCmd XtestE w! test.out
:wall				" will write other window to test.out
:				" 1	start of Xxx
:				" 2		test40
:				" 3	start of Xxx
:				" 4		test401
:				" 5	end of Xxx
:				" 6	asdf
:				" 7	end of Xxx
:				" 8	write
:				" 9		test401
:				" 10	end of Xxx
:				" 11	end of Xxx
:qa!
ENDTEST

start of Xxx
	test40
end of Xxx