7
|
1 Tests for autocommands:
|
|
2 - FileWritePre writing a compressed file
|
|
3 - FileReadPost reading a compressed file
|
|
4 - BufNewFile reading a file template
|
|
5 - BufReadPre decompressing the file to be read
|
|
6 - FilterReadPre substituting characters in the temp file
|
|
7 - FilterReadPost substituting characters after filtering
|
|
8 - FileReadPre set options for decompression
|
|
9 - FileReadPost decompress the file
|
|
10
|
|
11 Note: This test will fail if "gzip" is not available.
|
|
12 $GZIP is made empty, "-v" would cause trouble.
|
|
13 Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
|
|
14 modified outside of Vim (noticed on Solaris).
|
|
15
|
|
16 STARTTEST
|
|
17 :so small.vim
|
|
18 :let $GZIP = ""
|
|
19 :au FileChangedShell * echo "caught FileChangedShell"
|
|
20 :set bin
|
|
21 :au FileWritePre *.gz '[,']!gzip
|
|
22 :au FileWritePost *.gz undo
|
18
|
23 :/^start of testfile/,/^end of testfile/w! Xtestfile.gz
|
7
|
24 :au FileReadPost *.gz '[,']!gzip -d
|
|
25 :$r Xtestfile.gz " Read and decompress the testfile
|
|
26 :?startstart?,$w! test.out " Write contents of this file
|
|
27 :au BufNewFile *.c read Xtest.c
|
18
|
28 :/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
|
7
|
29 :e! foo.c " Will load Xtest.c
|
|
30 :au FileAppendPre *.out '[,']s/new/NEW/
|
|
31 :au FileAppendPost *.out !cat Xtest.c >>test.out
|
|
32 :w>>test.out " Append it to the output file
|
|
33 :au! FileAppendPre
|
|
34 :" setup autocommands to decompress before reading and re-compress afterwards
|
1624
|
35 :au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
|
7
|
36 :au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
|
|
37 :au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
|
1624
|
38 :au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r"))
|
7
|
39 :e! Xtestfile.gz " Edit compressed file
|
|
40 :w>>test.out " Append it to the output file
|
167
|
41 :set shelltemp " need temp files here
|
1624
|
42 :au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")
|
|
43 :au FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
|
|
44 :au FilterReadPre *.out exe '!rm ' . shellescape(expand("<afile>")) . '.t'
|
7
|
45 :au FilterReadPost *.out '[,']s/x/X/g
|
|
46 :e! test.out " Edit the output file
|
|
47 :23,$!cat
|
63
|
48 :23,$s/\r$// " remove CR for when sed adds them
|
1624
|
49 :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
|
7
|
50 :au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
|
|
51 :au! FileReadPost *.gz '[,']s/l/L/
|
|
52 :$r Xtestfile.gz " Read compressed file
|
|
53 :w " write it, after filtering
|
|
54 :au! " remove all autocommands
|
|
55 :e " Edit test.out again
|
|
56 :set nobin ff& " use the default fileformat for writing
|
|
57 :w
|
|
58 :qa!
|
|
59 ENDTEST
|
|
60
|
|
61 startstart
|
|
62 start of testfile
|
|
63 line 2 Abcdefghijklmnopqrstuvwxyz
|
|
64 line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
65 line 4 Abcdefghijklmnopqrstuvwxyz
|
|
66 line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
67 line 6 Abcdefghijklmnopqrstuvwxyz
|
|
68 line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
69 line 8 Abcdefghijklmnopqrstuvwxyz
|
|
70 line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
71 line 10 Abcdefghijklmnopqrstuvwxyz
|
|
72 end of testfile
|
|
73
|
|
74 start of test.c
|
|
75 /*
|
|
76 * Here is a new .c file
|
|
77 */
|
|
78 end of test.c
|