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
11 Note: This test is skipped 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).
18 :" drop out when there is no gzip program
19 :if !executable("gzip")
25 :au FileChangedShell * echo "caught FileChangedShell"
27 :au FileWritePre *.gz '[,']!gzip
28 :au FileWritePost *.gz undo
29 :/^start of testfile/,/^end of testfile/w! Xtestfile.gz
30 :au FileReadPost *.gz '[,']!gzip -d
31 :$r Xtestfile.gz " Read and decompress the testfile
32 :?startstart?,$w! test.out " Write contents of this file
33 :au BufNewFile *.c read Xtest.c
34 :/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
35 :e! foo.c " Will load Xtest.c
36 :au FileAppendPre *.out '[,']s/new/NEW/
37 :au FileAppendPost *.out !cat Xtest.c >>test.out
38 :w>>test.out " Append it to the output file
40 :" setup autocommands to decompress before reading and re-compress afterwards
41 :au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
42 :au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
43 :au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
44 :au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r"))
45 :e! Xtestfile.gz " Edit compressed file
46 :w>>test.out " Append it to the output file
47 :set shelltemp " need temp files here
48 :au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")
49 :au FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
50 :au FilterReadPre *.out exe '!rm ' . shellescape(expand("<afile>")) . '.t'
51 :au FilterReadPost *.out '[,']s/x/X/g
52 :e! test.out " Edit the output file
54 :23,$s/\r$// " remove CR for when sed adds them
55 :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
56 :au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
57 :au! FileReadPost *.gz '[,']s/l/L/
58 :$r Xtestfile.gz " Read compressed file
59 :w " write it, after filtering
60 :au! " remove all autocommands
61 :e " Edit test.out again
62 :set nobin ff& " use the default fileformat for writing
69 line 2 Abcdefghijklmnopqrstuvwxyz
70 line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
71 line 4 Abcdefghijklmnopqrstuvwxyz
72 line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
73 line 6 Abcdefghijklmnopqrstuvwxyz
74 line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
75 line 8 Abcdefghijklmnopqrstuvwxyz
76 line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
77 line 10 Abcdefghijklmnopqrstuvwxyz
82 * Here is a new .c file