1Test for "*Cmd" autocommands
2
3STARTTEST
4:so small.vim
5:/^start/,$w! Xxx		" write lines below to Xxx
6:au BufReadCmd testA 0r Xxx|$del
7:e testA			" will read text of Xxd instead
8:au BufWriteCmd testA call append(line("$"), "write")
9:w				" will append a line to the file
10:r testA			" should not read anything
11:				" now we have:
12:				" 1	start of Xxx
13:				" 2		test40
14:				" 3	end of Xxx
15:				" 4	write
16:au FileReadCmd testB '[r Xxx
17:2r testB			" will read Xxx below line 2 instead
18:				" 1	start of Xxx
19:				" 2		test40
20:				" 3	start of Xxx
21:				" 4		test40
22:				" 5	end of Xxx
23:				" 6	end of Xxx
24:				" 7	write
25:au FileWriteCmd testC '[,']copy $
264GA1
27:4,5w testC			" will copy lines 4 and 5 to the end
28:r testC			" should not read anything
29:				" 1	start of Xxx
30:				" 2		test40
31:				" 3	start of Xxx
32:				" 4		test401
33:				" 5	end of Xxx
34:				" 6	end of Xxx
35:				" 7	write
36:				" 8		test401
37:				" 9	end of Xxx
38:au FILEAppendCmd testD '[,']w! test.out
39:w >>testD			" will write all lines to test.out
40:$r testD			" should not read anything
41:$w >>test.out			" append "end of Xxx" to test.out
42:au BufReadCmd testE 0r test.out|$del
43:sp testE			" split window with test.out
445Goasdf:"
45:au BufWriteCmd testE w! test.out
46:wall				" will write other window to test.out
47:				" 1	start of Xxx
48:				" 2		test40
49:				" 3	start of Xxx
50:				" 4		test401
51:				" 5	end of Xxx
52:				" 6	asdf
53:				" 7	end of Xxx
54:				" 8	write
55:				" 9		test401
56:				" 10	end of Xxx
57:				" 11	end of Xxx
58:qa!
59ENDTEST
60
61start of Xxx
62	test40
63end of Xxx
64