Antworten:
Wenn wir uns ansehen /usr/share/vim/vim80/plugin/gzip.vim
, können wir sehen, wie das Plugin dies macht:
augroup gzip
" Remove all gzip autocommands
au!
" Enable editing of gzipped files.
" The functions are defined in autoload/gzip.vim.
"
" Set binary mode before reading the file.
" Use "gzip -d", gunzip isn't always available.
autocmd BufReadPre,FileReadPre *.gz,*.bz2,*.Z,*.lzma,*.xz,*.lz setlocal bin
autocmd BufReadPost,FileReadPost *.gz call gzip#read("gzip -dn")
autocmd BufWritePost,FileWritePost *.gz call gzip#write("gzip")
autocmd FileAppendPre *.gz call gzip#appre("gzip -dn")
autocmd FileAppendPost *.gz call gzip#write("gzip")
augroup END
Es gibt hier auch andere Dateierweiterungen (bzip2, xz usw.), aber ich habe diese der Kürze halber entfernt.
Um Ihre eigenen Befehle hinzuzufügen, können Sie diese zu Ihrer vimrc-Datei hinzufügen:
augroup gzip_local
autocmd!
autocmd BufReadPre,FileReadPre *.dia setlocal bin
autocmd BufReadPost,FileReadPost *.dia call gzip#read("gzip -dn -S .dia")
autocmd BufWritePost,FileWritePost *.dia call gzip#write("gzip -S .dia")
autocmd FileAppendPre *.dia call gzip#appre("gzip -dn -S .dia")
autocmd FileAppendPost *.dia call gzip#write("gzip -S .dia")
augroup END
Wir müssen die -S .dia
Option hinzufügen gzip
, um *.dia
Dateien lesen und schreiben zu können, anstatt *.gz
Dateien. Soweit ich sehen kann, unterstützen die meisten gängigen Plattformen (Linux, {Free, Open} BSD, OSX) diese Option, einige jedoch möglicherweise nicht (in diesem Fall müssen Sie ein Wrapper-Skript schreiben, um die Datei vor und nach dem Dekomprimieren zu verschieben Komprimieren).