forked from aniani/vim
79 lines
3.0 KiB
Plaintext
79 lines
3.0 KiB
Plaintext
Tests for autocommands:
|
|
- FileWritePre writing a compressed file
|
|
- FileReadPost reading a compressed file
|
|
- BufNewFile reading a file template
|
|
- BufReadPre decompressing the file to be read
|
|
- FilterReadPre substituting characters in the temp file
|
|
- FilterReadPost substituting characters after filtering
|
|
- FileReadPre set options for decompression
|
|
- FileReadPost decompress the file
|
|
|
|
Note: This test will fail if "gzip" is not available.
|
|
$GZIP is made empty, "-v" would cause trouble.
|
|
Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
|
|
modified outside of Vim (noticed on Solaris).
|
|
|
|
STARTTEST
|
|
:so small.vim
|
|
:let $GZIP = ""
|
|
:au FileChangedShell * echo "caught FileChangedShell"
|
|
:set bin
|
|
:au FileWritePre *.gz '[,']!gzip
|
|
:au FileWritePost *.gz undo
|
|
:/^start of testfile/,/^end of testfile/w! Xtestfile.gz
|
|
:au FileReadPost *.gz '[,']!gzip -d
|
|
:$r Xtestfile.gz " Read and decompress the testfile
|
|
:?startstart?,$w! test.out " Write contents of this file
|
|
:au BufNewFile *.c read Xtest.c
|
|
:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
|
|
:e! foo.c " Will load Xtest.c
|
|
:au FileAppendPre *.out '[,']s/new/NEW/
|
|
:au FileAppendPost *.out !cat Xtest.c >>test.out
|
|
:w>>test.out " Append it to the output file
|
|
:au! FileAppendPre
|
|
:" setup autocommands to decompress before reading and re-compress afterwards
|
|
:au BufReadPre *.gz !gzip -d <afile>
|
|
:au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
|
|
:au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
|
|
:au BufReadPost *.gz !gzip <afile>:r
|
|
:e! Xtestfile.gz " Edit compressed file
|
|
:w>>test.out " Append it to the output file
|
|
:set shelltemp " need temp files here
|
|
:au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>").".t")
|
|
:au FilterReadPre *.out !sed s/e/E/ <afile>.t ><afile>
|
|
:au FilterReadPre *.out !rm <afile>.t
|
|
:au FilterReadPost *.out '[,']s/x/X/g
|
|
:e! test.out " Edit the output file
|
|
:23,$!cat
|
|
:23,$s/\r$// " remove CR for when sed adds them
|
|
:au! FileReadPre *.gz !gzip -d <afile>
|
|
:au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
|
|
:au! FileReadPost *.gz '[,']s/l/L/
|
|
:$r Xtestfile.gz " Read compressed file
|
|
:w " write it, after filtering
|
|
:au! " remove all autocommands
|
|
:e " Edit test.out again
|
|
:set nobin ff& " use the default fileformat for writing
|
|
:w
|
|
:qa!
|
|
ENDTEST
|
|
|
|
startstart
|
|
start of testfile
|
|
line 2 Abcdefghijklmnopqrstuvwxyz
|
|
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
line 4 Abcdefghijklmnopqrstuvwxyz
|
|
line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
line 6 Abcdefghijklmnopqrstuvwxyz
|
|
line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
line 8 Abcdefghijklmnopqrstuvwxyz
|
|
line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
line 10 Abcdefghijklmnopqrstuvwxyz
|
|
end of testfile
|
|
|
|
start of test.c
|
|
/*
|
|
* Here is a new .c file
|
|
*/
|
|
end of test.c
|