forked from aniani/vim
Problem: Test 11 and 100 do not work properly on Windows. Solution: Avoid using feedkeys(). (Ken Takata)
85 lines
3.3 KiB
Plaintext
85 lines
3.3 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 is skipped 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
|
|
:" drop out when there is no gzip program
|
|
:if !executable("gzip")
|
|
: e! test.ok
|
|
: w! test.out
|
|
: qa!
|
|
:endif
|
|
: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 exe '!gzip -d ' . shellescape(expand("<afile>"))
|
|
:au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
|
|
:au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
|
|
:au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<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 exe 'silent !sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
|
|
:au FilterReadPre *.out exe 'silent !rm ' . shellescape(expand("<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 exe 'silent !gzip -d ' . shellescape(expand("<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
|