gzip.vim (3677B)
1 " Vim plugin for editing compressed files. 2 " Maintainer: The Vim Project <https://github.com/vim/vim> 3 " Last Change: 2025 Feb 28 4 " Former Maintainer: Bram Moolenaar <Bram@vim.org> 5 6 " Exit quickly when: 7 " - this plugin was already loaded 8 " - when 'compatible' is set 9 " - some autocommands are already taking care of compressed files 10 if exists("loaded_gzip") || &cp || exists("#BufReadPre#*.gz") 11 finish 12 endif 13 let loaded_gzip = 1 14 15 augroup gzip 16 " Remove all gzip autocommands 17 au! 18 19 " Enable editing of gzipped files. 20 " The functions are defined in autoload/gzip.vim. 21 " 22 " Set binary mode before reading the file. 23 autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.bz3,*.Z,*.lzma,*.xz,*.lz,*.zst,*.br,*.lzo,*.lz4 setlocal bin 24 25 " Use "gzip -d" and similar commands, gunzip isn't always available. 26 autocmd BufReadPost,FileReadPost *.br call gzip#read("brotli -d --rm") 27 autocmd BufReadPost,FileReadPost *.bz2 call gzip#read("bzip2 -d") 28 autocmd BufReadPost,FileReadPost *.bz3 call gzip#read("bzip3 -d") 29 autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn") 30 autocmd BufReadPost,FileReadPost *.lz call gzip#read("lzip -d") 31 autocmd BufReadPost,FileReadPost *.lz4 call gzip#read("lz4 -d -q --rm") 32 autocmd BufReadPost,FileReadPost *.lzma call gzip#read("lzma -d") 33 autocmd BufReadPost,FileReadPost *.lzo call gzip#read("lzop -d -U") 34 autocmd BufReadPost,FileReadPost *.xz call gzip#read("xz -d") 35 autocmd BufReadPost,FileReadPost *.Z call gzip#read("uncompress") 36 autocmd BufReadPost,FileReadPost *.zst call gzip#read("zstd -d --rm") 37 38 autocmd BufWritePost,FileWritePost *.br call gzip#write("brotli --rm") 39 autocmd BufWritePost,FileWritePost *.bz2 call gzip#write("bzip2") 40 autocmd BufWritePost,FileWritePost *.bz3 call gzip#write("bzip3") 41 autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip") 42 autocmd BufWritePost,FileWritePost *.lz call gzip#write("lzip") 43 autocmd BufWritePost,FileWritePost *.lz4 call gzip#write("lz4 -q --rm") 44 autocmd BufWritePost,FileWritePost *.lzma call gzip#write("lzma -z") 45 autocmd BufWritePost,FileWritePost *.lzo call gzip#write("lzop -U") 46 autocmd BufWritePost,FileWritePost *.xz call gzip#write("xz -z") 47 autocmd BufWritePost,FileWritePost *.Z call gzip#write("compress -f") 48 autocmd BufWritePost,FileWritePost *.zst call gzip#write("zstd --rm") 49 50 autocmd FileAppendPre *.br call gzip#appre("brotli -d --rm") 51 autocmd FileAppendPre *.bz2 call gzip#appre("bzip2 -d") 52 autocmd FileAppendPre *.bz3 call gzip#appre("bzip3 -d") 53 autocmd FileAppendPre *.gz call gzip#appre("gzip -dn") 54 autocmd FileAppendPre *.lz call gzip#appre("lzip -d") 55 autocmd FileAppendPre *.lz4 call gzip#appre("lz4 -d -q --rm") 56 autocmd FileAppendPre *.lzma call gzip#appre("lzma -d") 57 autocmd FileAppendPre *.lzo call gzip#appre("lzop -d -U") 58 autocmd FileAppendPre *.xz call gzip#appre("xz -d") 59 autocmd FileAppendPre *.Z call gzip#appre("uncompress") 60 autocmd FileAppendPre *.zst call gzip#appre("zstd -d --rm") 61 62 autocmd FileAppendPost *.br call gzip#write("brotli --rm") 63 autocmd FileAppendPost *.bz2 call gzip#write("bzip2") 64 autocmd FileAppendPost *.bz3 call gzip#write("bzip3") 65 autocmd FileAppendPost *.gz call gzip#write("gzip") 66 autocmd FileAppendPost *.lz call gzip#write("lzip") 67 autocmd FileAppendPost *.lz4 call gzip#write("lz4 --rm") 68 autocmd FileAppendPost *.lzma call gzip#write("lzma -z") 69 autocmd FileAppendPost *.lzo call gzip#write("lzop -U") 70 autocmd FileAppendPost *.xz call gzip#write("xz -z") 71 autocmd FileAppendPost *.Z call gzip#write("compress -f") 72 autocmd FileAppendPost *.zst call gzip#write("zstd --rm") 73 augroup END