* .diaファイルを* .gzファイルとして開く方法は?


8

vim proj.dia バイナリデータを与えます。

名前が変更された場合、vimは解凍して開きます。

$ mv proj.dia proj.dia.gz
$ vim proj.dia.gz

.dia行為を同じにする方法は.gz

回答:


9

見てみると/usr/share/vim/vim80/plugin/gzip.vim、プラグインがこれをどのように行うかがわかります。

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

ここにも他のファイル拡張子(bzip2、xzなど)がありますが、簡潔にするために削除しました。

これに独自のコマンドを追加するには、これをvimrcファイルに追加します。

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

ファイルではなく、ファイルを読み書き-S .diaするためのオプションを追加する必要があります。ほとんどの一般的なプラットフォーム(Linux、{Free、Open} BSD、OSX)がこのオプションをサポートしているのを確認できるのと同じくらいですが、一部はサポートしていない場合があります(その場合、解凍前と解凍後にファイルを移動するラッパースクリプトを記述する必要があります。圧縮)。gzip*.dia*.gz

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.